سيستيمد هو مجموعة من اللبنات الأساسية لنظام لينكس. أنه يوفر نظام ومدير خدمة الذي يعمل بيد 1 ويبدأ بقية النظام. يوفر سيستيمد قدرات الموازاة العدوانية، ويستخدم مأخذ وتنشيط D - حافلة لبدء الخدمات، ويقدم بناء على الطلب بدءا من الشياطين، وتتبع العمليات باستخدام مجموعات التحكم لينكس. ويحافظ على جبل ونقاط أوتومونت، وتنفذ منطقية تعتمد على الاعتماد على خدمة الاعتماد على المنطق. سيستيمد يدعم سيسف و لسب الأوامر النصية ويعمل كبديل ل سيسفينيت. وتشمل الأجزاء الأخرى الخفي قطع الأشجار والمرافق للتحكم في تكوين النظام الأساسي مثل اسم المضيف والتاريخ واللغة والحفاظ على قائمة المستخدمين الذين قاموا بتسجيل الدخول وتشغيل الحاويات والأجهزة الظاهرية وحسابات النظام ودليل وقت التشغيل والإعدادات والشياطين لإدارة شبكة بسيطة والتكوين، وتزامن وقت الشبكة، وإعادة توجيه السجل، ودقة الاسم. ملاحظة: للحصول على شرح مفصل حول سبب انتقال القوس إلى سيستيمد. انظر مشاركة المنتدى. باسيك سيستمكتل أوسيج الأمر الرئيسي المستخدم لإدخال والتحكم سيستيمد هو سيستمكتل. وتقوم بعض استخداماتها بدراسة حالة النظام وإدارة النظام والخدمات. انظر مان سيستيمكتل لمزيد من التفاصيل. تلميح: يمكنك استخدام كافة الأوامر سيستمكتل التالية مع مفتاح المضيف المضيف - H للتحكم في مثيل سيستيمد على جهاز بعيد. سيقوم هذا باستخدام سش للاتصال المثيل سيستيمد البعيد. سيستيمادم هو الواجهة الرسومية الرسمية ل سيستمكتل ويتم توفيرها من قبل حزمة سيستيمد-أوي. يمكن للمستخدمين البلازما تثبيت سيستيمد-كم كما رسومية تواجه سيستمكتل. بعد تثبيت وحدة ستضاف تحت إدارة النظام. تحليل حالة النظام عرض حالة النظام باستخدام: قائمة وحدات التشغيل: الوحدات التي تم إخفاقها في القائمة: يمكن رؤية ملفات الوحدة المتوفرة في نظام أوسرليبسيستمديستم و إتسيستمدسيستم (هذا الأخير له الأسبقية). قائمة ملفات الوحدة المثبتة مع: استخدام الوحدات يمكن أن تكون الوحدات، على سبيل المثال، الخدمات (.service)، جبل نقطة (.mount)، الأجهزة (.device) أو مآخذ (.socket). عند استخدام سيستمكتل. لديك عموما لتحديد الاسم الكامل لملف الوحدة، بما في ذلك لاحقه، على سبيل المثال sshd. socket. ومع ذلك هناك بعض النماذج القصيرة عند تحديد الوحدة في الأوامر سيستمكتل التالية: إذا لم تقم بتحديد اللاحقة، سيستمل سيستمكتل. service. على سبيل المثال، نيتكتل و netctl. service مكافئة. سيتم تلقائيا ترجمة نقاط جبل إلى وحدة. mount المناسبة. على سبيل المثال، تحديد المنزل يعادل home. mount. مماثلة لنقاط جبل، يتم ترجمة الأجهزة تلقائيا إلى وحدة. device المناسبة، وبالتالي تحديد devsda2 ما يعادل ديف-sda2.device. انظر الرجل systemd. unit لمزيد من التفاصيل. ملاحظة: تحتوي بعض أسماء الوحدات على علامة (على سبيل المثال، سلسلة اسم. service): هذا يعني أنها مثيلات لوحدة نموذج، لا يحتوي اسم الملف الفعلي على جزء السلسلة (مثل name. service). سترينغ يسمى معرف المثيل. وهو مشابه للحجة التي يتم تمريرها إلى وحدة القالب عند استدعاؤها مع الأمر سيستمكتل: في ملف الوحدة سيحل محل المعين i. لتكون أكثر دقة، قبل محاولة إنشاء وحدة القالب name. suffix، سيستيمد سوف ننظر في الواقع لوحدة مع اسم الملف namestring. suffix بالضبط، على الرغم من أنه من خلال اتفاقية مثل هذا الاشتباك يحدث نادرا، بمعنى أن معظم ملفات وحدة تحتوي على علامة يعني لتكون قوالب. أيضا، إذا تم استدعاء وحدة قالب دون معرف مثيل، فإنه سوف تفشل فقط، حيث لا يمكن استبدال المواصفة i. تلميح: تعمل معظم الأوامر التالية أيضا إذا تم تحديد وحدات متعددة، راجع مان سيستيمكتل للحصول على مزيد من المعلومات. التبديل --now يمكن استخدامها جنبا إلى جنب مع تمكين. تعطيل. وقناع على التوالي بدء، توقف، أو قناع على الفور وحدة بدلا من بعد التمهيد التالي. قد تقدم الحزمة وحدات لأغراض مختلفة. إذا قمت بتثبيت حزمة فقط، باسمان - Qql حزمة غريب - Fe. service - e. socket يمكن استخدامها للتحقق والعثور عليها. بدء وحدة على الفور: قم بإيقاف وحدة على الفور: اطلب وحدة لإعادة تحميل التكوين: إظهار حالة وحدة، بما في ذلك ما إذا كان قيد التشغيل أم لا: تحقق ما إذا كان قد تم تمكين وحدة بالفعل أم لا: تمكين وحدة ليتم تشغيلها على يبدء تشغيل الأجهزة . تعطيل وحدة لا تبدأ أثناء تمهيد: قناع وحدة لجعله من المستحيل لبدء تشغيله: عرض الصفحة اليدوية المرتبطة وحدة (هذا يجب أن تكون معتمدة من قبل ملف الوحدة): ريلود سيستيمد. المسح الضوئي للوحدات الجديدة أو المتغيرة. إدارة الطاقة بولكيت ضروري لإدارة الطاقة كمستخدم غير محروم. إذا كنت في جلسة عمل المستخدم المحلي سيستيمد-لوكيند ولا جلسة أخرى نشطة، فإن الأوامر التالية تعمل بدون امتيازات الجذر. إذا لم يكن (على سبيل المثال، لأنه يتم تسجيل مستخدم آخر إلى تي)، سيستيمد سوف يطلب منك تلقائيا كلمة مرور الجذر. إيقاف تشغيل وإعادة تشغيل النظام: إيقاف وإيقاف السلطة النظام: تعليق النظام: وضع النظام في وضع الإسبات: وضع النظام في حالة الهجين النوم (أو تعليق إلى كلاهما): كتابة ملفات وحدة بناء الجملة سيستيمد s مستوحاة من ملفات زدغ سطح المكتب مواصفات. desktop، والتي هي بدورها مستوحاة من ملفات ميكروسوفت ويندوز. ini. يتم تحميل ملفات الوحدة من موقعين. من أدنى إلى أعلى الأسبقية هم: أوسرليبسيستمديستم. الوحدات التي توفرها الحزم المثبتة إتسيستمدسيستم. الوحدات التي تم تثبيتها بواسطة مسؤول النظام ملاحظة: مسارات التحميل مختلفة تماما عند تشغيل سيستمد في وضع المستخدم. قد تحتوي أسماء وحدات سيستيمد فقط على أحرف أسي أبجدية رقمية وشرطات سفلية وفترات. يجب استبدال جميع الأحرف الأخرى بواسطة C-ستايل x2d يهرب. انظر الرجل systemd. unit والرجل سيستيمد الهروب لمزيد من المعلومات. انظروا إلى الوحدات التي تم تثبيتها بواسطة الطرود الخاصة بك للحصول على أمثلة، فضلا عن قسم سبيل المثال المشروح من الرجل systemd. service. نصيحة: يمكن استخدام التعليقات التي تم إرفاقها مسبقا في ملفات الوحدات أيضا، ولكن فقط في خطوط جديدة. لا تستخدم تعلیمات الخط النھائي بعد إخفاق معلمات سيستيمد أو فشل الوحدة. التعامل مع التبعيات مع سيستيمد. تبعيات يمكن حلها من خلال تصميم ملفات وحدة بشكل صحيح. والحالة الأكثر شيوعا هي أن الوحدة A تتطلب تشغيل الوحدة B قبل بدء A. في هذه الحالة إضافة B يتطلب B و بعد B إلى قسم الوحدة من A. إذا كانت التبعية اختيارية، أضف يريد B و B بدلا من ذلك. لاحظ أن يريد و يتطلب لا يعني بعد. وهذا يعني أنه إذا لم يتم تحديد بعد، سيتم بدء وحدتين بالتوازي. وعادة ما توضع التبعيات على الخدمات وليس على الأهداف. على سبيل المثال، يتم سحب network. target في أي خدمة تكوين واجهات الشبكة الخاصة بك، وبالتالي طلب وحدة مخصصة الخاص بك بعد أن يكون كافيا منذ بدء تشغيل network. target على أي حال. أنواع الخدمة هناك العديد من أنواع بدء التشغيل المختلفة التي يجب أخذها في الاعتبار عند كتابة ملف خدمة مخصص. يتم تعيين هذا مع المعلمة نوع في قسم الخدمة: تايبيسيمبل (افتراضي): سيستيمد يعتبر أن الخدمة التي سيتم تشغيلها على الفور. ويجب ألا تكون العملية مفترضة. لا تستخدم هذا النوع إذا كانت الخدمات الأخرى تحتاج إلى طلب على هذه الخدمة، إلا إذا كان مأخذ تفعيلها. Typeforking. سيستيمد تعتبر الخدمة بدأت مرة واحدة في العملية الشوكات والوالد قد خرج. تستخدم الشياطين الكلاسيكية هذا النوع ما لم تكن تعلم أنه ليس ضروريا. يجب عليك تحديد بيدفيل كذلك سيستيمد يمكن تتبع العملية الرئيسية. Typeoneshot. وهذا مفيد للبرامج النصية التي تقوم بعمل واحد ثم الخروج. قد ترغب في تعيين ريمينافتريكسيتيز كذلك بحيث سيستيمد لا تزال تعتبر الخدمة نشطة بعد انتهاء العملية. Typenotify. متطابقة ل تيبيسيمبل. ولكن بشرط أن الخفي سوف يرسل إشارة إلى سيستيمد عندما يكون جاهزا. يتم توفير التنفيذ المرجعي لهذا الإشعار من قبل libsystemd-daemon. so. Typedbus. تعتبر الخدمة جاهزة عندما يظهر بوسنام المحدد على حافلة نظام دبوس. Typeidle. سيقوم سيستيمد بتأخير تنفيذ الخدمة الثنائية حتى يتم إرسال جميع الوظائف. بخلاف هذا السلوك هو مشابه جدا ل تيبسيمبل. راجع صفحة systemd. service (5) مان للحصول على شرح أكثر تفصيلا لقيم النوع. تحرير الوحدات المقدمة لتجنب حدوث تعارضات مع باسمان، لا ينبغي تحرير ملفات الوحدات التي توفرها الحزم مباشرة. هناك طريقتان آمنتان لتعديل الوحدة دون لمس الملف الأصلي: إنشاء ملف وحدة جديد يتخطى الوحدة الأصلية أو أنشئ مقتطفات منسدلة يتم تطبيقها على أعلى الوحدة الأصلية. بالنسبة لكلا الطريقتين، يجب إعادة تحميل الوحدة بعد ذلك لتطبيق التغييرات. ويمكن القيام بذلك إما عن طريق تحرير الوحدة مع تحرير سيستيمكتل (الذي يعيد تحميل وحدة تلقائيا) أو عن طريق إعادة تحميل جميع الوحدات مع: تلميح: يمكنك استخدام سيستيمد دلتا لمعرفة أي ملفات وحدة تم تجاوز أو تمديد وما تم تغيير بالضبط . استخدم سيستيمكتل كات أونيت لعرض محتوى ملف الوحدة وجميع المقتطفات المنسدلة المرتبطة بها. تسليط الضوء على تركيب ل سيستيمد ملفات وحدة داخل فيم يمكن تمكين عن طريق تثبيت فيم-سيستمد. استبدال ملفات الوحدة لاستبدال وحدة وحدة أوسرليبسيستمديسيستم وحدة. إنشاء وحدة إتسيستمدسيستم ملف وإعادة تمكين وحدة لتحديث الارتباطات: هذا يفتح وحدة إتسيستمدسيستم في محرر الخاص بك (نسخ النسخة المثبتة إذا كان غير موجود حتى الآن) وإعادة تحميل تلقائيا عند الانتهاء من التحرير. ملاحظة: لا يقوم باسمان بتحديث ملفات الوحدة البديلة عندما يتم تحديث النسخ الأصلية، لذا فإن هذه الطريقة يمكن أن تجعل صيانة النظام أكثر صعوبة. ولهذا السبب يوصى بالنهج التالي. دروب-إن فيليز لإنشاء ملفات إسقاط وحدة وحدة أوسرليبسيستمديسيستم. إنشاء الدليل إتسيستمدسيستم وحدة. d ووضع. conf الملفات هناك إلى تجاوز أو إضافة خيارات جديدة. سيقوم سيستيمد بتحليل هذه الملفات. conf وتطبيقها على الجزء العلوي من الوحدة الأصلية. أسهل طريقة للقيام بذلك هي لتشغيل: هذا يفتح ملف إتسيستمدسيستم وحدة. doverride. conf في محرر النص الخاص بك (خلق إذا لزم الأمر) وإعادة تحميل وحدة تلقائيا عند الانتهاء من التحرير. الرجوع إلى إصدار المورد لإعادة أية تغييرات على وحدة تم إجراؤها باستخدام سيستمكتل إديت قم بما يلي: على سبيل المثال، إذا أردت ببساطة إضافة تبعية إضافية إلى وحدة، يمكنك إنشاء الملف التالي: كمثال آخر، لاستبدال إكسيستارت توجيه للوحدة التي ليست من نوع أتشوت. قم بإنشاء الملف التالي: لاحظ كيف يجب إزالة إكسكستارت قبل إعادة تعيينه 1. وينطبق الشيء نفسه على كل عنصر يمكن تحديده عدة مرات، على سبيل المثال. أونكالندار للموقتات. مثال آخر لإعادة تشغيل الخدمة تلقائيا: السبب: الوصف غير الواضح، المحتوى الذي تم لصقه بواسطة النسخ (يشير بشكل صريح إلى فيدورا). (ناقش في الحديث: قسم سيستمدمك أهداف أكثر وضوحا) سيستيمد يستخدم الأهداف التي تخدم غرض مماثل كما رونليفيلز ولكن العمل مختلفة قليلا. ويدعى كل هدف بدلا من ترقيم ويهدف إلى خدمة غرض معين مع إمكانية وجود متعددة منها نشطة في نفس الوقت. ويتم تنفيذ بعض الأهداف من خلال وراثة جميع خدمات هدف آخر وإضافة خدمات إضافية إليه. هناك سيستيمد الهدف s التي تحاكي رونلفيلز سيستمفينيت المشتركة حتى تتمكن من الاستمرار في تبديل الهدف s باستخدام أمر رونليفيل تيلينيت مألوفة. الحصول على الأهداف الحالية التالية يجب أن تستخدم تحت سيستيمد بدلا من تشغيل رونليفيل. إنشاء هدف مخصص و رونليفيلز التي عقدت معنى محدد تحت سيسفينيت (أي 0 و 1 و 3 و 5 و 6) لديها 1: 1 تعيين مع هدف سيستيمد محددة. لسوء الحظ، لا توجد طريقة جيدة لفعل الشيء نفسه ل رونليفيلز المعرفة من قبل المستخدم مثل 2 و 4. إذا كنت الاستفادة من تلك يقترح أن تقوم بإنشاء هدف سيستيمد اسم جديد كما إتسيستيمدسيستم الهدف الذي يأخذ واحدة من رونيفيلز القائمة كقاعدة (يمكنك أن تبحث في usrlibsystemdsystemgraphical. target كمثال)، وجعل الدليل إتسيستمدسيستم الهدف الخاص بك. wants. ومن ثم ربط الارتباطات الخدمات الإضافية من أوسرليبسيستمزدستم الذي ترغب في تمكين. جدول الأهداف تغيير الهدف الحالي في أهداف سيستيمد يتعرض عن طريق وحدات الهدف. يمكنك تغييرها مثل هذا: وهذا فقط تغيير الهدف الحالي، وليس له أي تأثير على التمهيد التالي. وهذا يعادل أوامر مثل تلينيت 3 أو تلينيت 5 في سيسفينيت. تغيير الهدف الافتراضي للتمهيد في الهدف القياسي هو default. target. الذي هو المستعار افتراضيا ل graphical. target (الذي يتوافق تقريبا إلى رونليفيل القديم 5). لتغيير الهدف الافتراضي في التمهيد الوقت، إلحاق أحد المعلمات كيرنيل التالية إلى بوتلودر الخاص بك: systemd. unitmulti-user. target (الذي يتوافق تقريبا مع رونليفيل القديم 3)، systemd. unitrescue. target (الذي يتوافق تقريبا مع رونليفيل القديم 1). بدلا من ذلك، يمكنك ترك بوتلودر وحدها وتغيير default. target. ويمكن القيام بذلك باستخدام سيستمكتل. لتكون قادرة على تجاوز default. target تعيين سابقا. استخدام خيار القوة: يتم تنفيذ تأثير هذا الأمر بواسطة سيستمكتل يتم إجراء ارتباط متزامن مع الهدف الافتراضي الجديد في etcsystemdsystemdefault. target. الملفات المؤقتة سيستيمد-تمفيلز يخلق ويحذف وينظف الملفات والدلائل المتقلبة والمؤقتة. يقرأ ملفات التكوين في etctmpfiles. d و usrlibtmpfiles. d لاكتشاف أي إجراءات لأداء. تكون ملفات التكوين في الدليل السابق لها الأسبقية على الملفات الموجودة في الدليل الأخير. يتم عادة توفير ملفات التكوين مع ملفات الخدمة، ويتم تسميتها في نمط usrlibtmpfiles. d البرنامج. conf. على سبيل المثال، يتنبأ سامبا ديمون أن يتم تشغيل الدليل أروندامبا وأن يكون لديك الأذونات الصحيحة. لذلك، حزمة السامبا السفن مع هذا التكوين: ملفات التكوين يمكن أن تستخدم أيضا لكتابة القيم في ملفات معينة على التمهيد. على سبيل المثال، إذا كنت تستخدم etc. rc. local لتعطيل التنبيه من أجهزة أوسب مع صدى أوسب غ بروكاكبيواكيوب. يمكنك استخدام التالي تمبيل بدلا من ذلك: انظر سيستيمد-تمفيلز (8) و tmpfiles. d (5) صفحات الرجل للحصول على التفاصيل. ملاحظة: قد لا تعمل هذه الطريقة لتعيين خيارات في سيس منذ تشغيل سيستيمد-تمفيلز-إعداد الخدمة قبل تحميل وحدات الجهاز المناسب. في هذه الحالة يمكنك التحقق ما إذا كان وحدة نمطية يحتوي على معلمة للخيار الذي تريد تعيين مع وحدة نمطية مودينفو وتعيين هذا الخيار مع ملف التكوين في etcmodprobe. d. وإلا سيكون لديك لكتابة قاعدة أوديف لتعيين السمة المناسبة بمجرد ظهور الجهاز. الموقت هو ملف تكوين الوحدة الذي ينتهي اسمه. timer ويرمز المعلومات حول جهاز تحكم يراقب ويشرف عليه سيستيمد. لتفعيل القائم على الموقت. انظر سيستيمدتيمرز. منذ سيستيمد هو بديل لنظام V إينيت، هو المسؤول عن الجبال المحددة في إتكفستاب. في الواقع، فإنه يتجاوز قدرات فستب المعتادة، وتنفيذ خيارات جبل خاص مسبوقة مع x-سيستيمد. راجع فستبوتومونت مع سيستيمد للحصول على مثال على أتمتة (تصاعد بناء على الطلب) باستخدام هذه الامتدادات. راجع 2 للاطلاع على الوثائق الكاملة لهذه الإضافات. سيستيمد ديه نظام تسجيل الخاصة يسمى مجلة لذلك، تشغيل الخفي سيسلوغ لم يعد مطلوبا. لقراءة السجل، استخدم: في أرش لينوكس، دليل فارلوجورنال هو جزء من حزمة سيستيمد، والمجلة (عند تعيين التخزين على السيارات في etcsystemdjournald. conf) الكتابة إلى فارلوجورنال. إذا قمت أنت أو بعض البرامج بحذف هذا الدليل، سيستيمد لن إعادة إنشاء تلقائيا وبدلا من ذلك سوف يكتب سجلاتها إلى رونسيستدجورنال بطريقة غير سارة. ومع ذلك، سيتم إعادة إنشاء المجلد عند تعيين ستوثربرزيستنت وتشغيل سيستيمكتل إعادة تشغيل سيستيمد-جورنالد (أو إعادة التشغيل). تقوم مجلة سيستمد بتصنيف الرسائل حسب مستوى الأولوية والمرفق. تصنيف تسجيل يتوافق مع بروتوكول سيسلوغ الكلاسيكية (رك 5424). مستوى الأولوية يستخدم رمز شدة سجل النظام (في النظام المسمى بالأولوية) لإبراز أهمية الرسالة رك 5424 القسم 6.2.1. لذلك، مرافق مفيدة لمشاهدة: 0،1،3،4،9،10،15. تصفية جورنالكتل تصفية يسمح لك لتصفية الإخراج من قبل حقول محددة. كن على علم أنه إذا كان هناك العديد من الرسائل لعرض أو تصفية فترة زمنية كبيرة يجب القيام به، الإخراج من هذا الأمر يمكن أن يتأخر لبعض الوقت. نصيحة: أثناء تخزين المجلة بتنسيق ثنائي، لا يتم تعديل محتوى الرسائل المخزنة. وهذا يعني أنه قابل للعرض مع السلاسل. على سبيل المثال للانتعاش في بيئة التي لم يتم تثبيت سيستيمد. مثال على الأمر: عرض كل الرسائل من هذا التمهيد: ومع ذلك، غالبا ما يكون أحد المهتمين بالرسائل ليس من التيار، ولكن من التمهيد السابق (على سبيل المثال إذا حدث تعطل النظام غير قابل للاسترداد). هذا ممكن من خلال معلمة الإزاحة الاختيارية لل - b العلم: جورنالكتل - b -0 يظهر رسائل من التمهيد الحالي، جورنالكتل - b -1 من التمهيد السابق، جورنالكتل - b -2 من السابق السابق وهلم جرا. انظر رجل 1 جورنالكتل لوصف كامل، ودلالات أكثر قوة بكثير. عرض كل الرسائل من التاريخ (والوقت الاختياري): عرض كل الرسائل منذ 20 دقيقة: اتبع الرسائل الجديدة: عرض جميع الرسائل بواسطة برنامج قابل للتنفيذ: عرض جميع الرسائل بواسطة عملية محددة: عرض جميع الرسائل بواسطة وحدة معينة: عرض حلقة النواة المخزن المؤقت: عرض رسائل الخطأ فقط، الحرجة، و التنبيه أرقام أيضا يمكن استخدامها، جورنالكتل - p 3..1. إذا تم استخدام كلمة رئيسية مفردة، جورنالكتل - p 3 - تضمنت جميع مستويات الأولوية الأعلى أيضا. عرض مكافئ auth. log من خلال التصفية على منشأة سيسلوغ: انظر مان 1 جورنالكتل. مان 7 systemd. journal-فييلدز. أو لينارتس بلوق وظيفة للحصول على التفاصيل. نصيحة: افتراضيا، جورنالكتل يقطع خطوط أطول من عرض الشاشة، ولكن في بعض الحالات، قد يكون من الأفضل لتمكين التفاف بدلا من اقتطاع. يمكن التحكم في ذلك بواسطة متغير بيئة سيستيمليس. الذي يحتوي على خيارات تمريرها إلى أقل (النداء الافتراضي) والإعدادات الافتراضية ل فرسكسمك (انظر رجل 1 أقل والرجل 1 جورنالكتل لمزيد من التفاصيل). عن طريق حذف الخيار S، سيتم لف الإخراج بدلا من اقتطاع. على سبيل المثال، بدء جورنالكتل على النحو التالي: إذا كنت ترغب في تعيين هذا السلوك بشكل افتراضي، تصدير المتغير من حد حجم دفتر اليومية إذا كانت دورية مستمرة (غير متطايرة)، يتم تعيين حد حجمها إلى القيمة الافتراضية من 10 من حجم نظام الملفات الأساسي ولكن توجها إلى 4 جيب. على سبيل المثال، مع فارلوجورنال تقع على تقسيم 20 جي بي، قد يستغرق بيانات دفتر اليومية ما يصل الى 2 جي بي. على 50 جي بي التقسيم، فإنه سيكون الحد الأقصى في 4 جي بي. يمكن التحكم في الحد الأقصى لحجم المجلة المستمرة عن طريق إلغاء وتغيير ما يلي: من الممكن أيضا استخدام آلية تجاوز تكوين المقتطفات المنسدلة بدلا من تحرير ملف التكوين العام. في هذه الحالة لا تنسى وضع تجاوزات تحت رأس اليومية: انظر مان journald. conf لمزيد من المعلومات. ملفات مجلة نظيفة يدويا ملفات مجلة يمكن إزالتها عالميا من فارلوجورنال باستخدام على سبيل المثال. جمهورية مقدونيا. أو يمكن تقليمها وفقا لمعايير مختلفة باستخدام جورنالكتل. أمثلة: إزالة ملفات دفتر اليومية المؤرشفة حتى تسقط مساحة القرص التي يستخدمها أقل من 100 متر: جعل جميع ملفات دفتر اليومية لا تحتوي على بيانات أقدم من 2 أسابيع. انظر مان جورنالكتل لمزيد من المعلومات. جورنالد بالاقتران مع سيسلوغ التوافق مع كلاسيك، غير جورنالد تطبيق سيسلوغ علم يمكن توفيرها عن طريق السماح سيستيمد إلى الأمام جميع الرسائل عبر سونسيتديجورنالاليسيسلوغ. لجعل الخفي سيسلوغ العمل مع مجلة، يجب أن يرتبط هذا مأخذ بدلا من ديفلوغ (إعلان رسمي). الافتراضي journald. conf لإعادة التوجيه إلى مأخذ هو فورواردتوسيسلوغنو لتجنب النظام العام، لأن رسيسلوغ أو سيسلوغ-نغ سحب الرسائل من مجلة في حد ذاته. إعادة توجيه جورنالد إلى devtty12 إنشاء دليل إسقاط incsystemdjournald. conf. d وإنشاء ملف فو-tty12.conf فيه: تحديد مجلة مختلفة لعرض قد تكون هناك حاجة للتحقق من سجلات نظام آخر ميت في المياه، مثل تمهيد من نظام حي لاستعادة نظام الإنتاج. في مثل هذه الحالة، يمكن تحميل القرص على سبيل المثال. كزاز الرضع. وتحديد مسار دفتر اليومية عبر - D --directory. مثل ذلك: نصائح وحيل تمكين وحدات مثبتة افتراضيا السبب: كيف يعمل مع وحدات مثبتة (ناقش في الحديث: سيستمد) قوس السفن لينكس مع أوسرليبسيستمديستم-preset99-default. preset تحتوي على تعطيل. يؤدي هذا سيستيمكتل مسبقا إلى تعطيل كافة الوحدات بشكل افتراضي، بحيث عند تثبيت حزمة جديدة، يجب على المستخدم تمكين الوحدة يدويا. إذا لم يكن هذا السلوك المطلوب، ببساطة إنشاء ارتباطات من إتسيستمدسيستم-preset99-default. preset إلى ديفنول من أجل تجاوز ملف التكوين. هذا سوف يسبب سيستمكتل مسبقا لتمكين كافة الوحدات التي تحصل على تثبيتالتيابونليس من وحدة تايبونلس المحدد في ملف آخر في سيستيمكتل مسبقا التكوين الدلائل s. لا تتأثر وحدات المستخدم. انظر مانباج ل systemd. preset لمزيد من المعلومات. ملاحظة: قد يؤدي تمكين جميع الوحدات بشكل افتراضي إلى حدوث مشكلات في الحزم التي تحتوي على وحدتين أو أكثر من الوحدات التي تستبعد بعضها البعض. تم تصميم سيستمكتل مسبقا لاستخدامها من قبل التوزيعات ويدور أو مسؤولي النظام. في حالة تمكين وحدتين متضاربتين، يجب عليك تحديد أي واحد يتم تعطيله بشكل صريح في ملف توصيف مسبق الضبط كما هو محدد في مانباج فور systemd. preset. بيئات تطبيقات وضع الحماية يمكن إنشاء ملف وحدة كملف عزل لعزل التطبيقات وعملياتها داخل بيئة ظاهرية متشددة. سيستيمد روافع الأسماء. وايت-بلاكليستينغ من القدرات. والمجموعات الضابطة لعمليات الحاويات من خلال تكوين بيئة التنفيذ واسعة النطاق. تحسين ملف وحدة سيستيمد الموجودة مع وضع الحماية التطبيق عادة ما يتطلب اختبارات التجربة والخطأ يرافقه الاستخدام السخي من التعادل. ستدير و جورنكتل تسجيل الأخطاء ومرافق الإخراج. قد ترغب في البحث أولا عن وثائق المنبع للاختبارات التي تم إجراؤها من قبل لإجراء التجارب الأساسية. بعض الأمثلة على كيفية وضع الحماية مع سيستيمد يمكن نشرها: كابابيليتيبيندينغسيت يحدد مجموعة بيضاء من القدرات المسموح بها، ولكن يمكن أن تستخدم أيضا لإدراج القائمة السوداء لقدرة معينة لوحدة. القدرة كابسيسادم، على سبيل المثال، التي ينبغي أن تكون واحدة من أهداف رمل آمن. القدرةبوندينغسيت كابسيسادم أونبوندزاندبوكسينغ يظهر مثالا شاملا على ميزات سيستيمد لوضع الحماية. استكشاف الأخطاء وإصلاحها التحقيق في أخطاء سيستيمد على سبيل المثال، سوف نقوم بالتحقيق في حدوث خطأ مع خدمة تحميل وحدات نمطية: 1. يتيح العثور على خدمات سيستيمد التي لا تبدأ: 2. حسنا، وجدنا مشكلة مع خدمة سيستيمد-مودولز-لواد. نريد أن نعرف المزيد: إذا لم يتم سرد معرف العملية، فقط قم بإعادة تشغيل الخدمة فشلت مع سيستيمكتل إعادة تشغيل سيستيمد-مودولز-لواد 3. الآن لدينا معرف العملية (بيد) للتحقيق في هذا الخطأ في العمق. أدخل الأمر التالي مع معرف العملية الحالي (هنا: 15630): 4. نرى أن بعض تكوينات وحدة كيرنيل تحتوي على إعدادات خاطئة. لذلك لدينا نظرة على هذه الإعدادات في إتمودولز-load. d. 5. فشل العثور على القائمة السوداء أوسبلب رسالة خطأ قد تكون ذات صلة إلى إعداد خاطئ داخل blacklist. conf. يتيح إلغاء تنشيطه مع إدراج زائدة قبل كل خيار وجدنا من خلال الخطوة 3: 6. الآن، في محاولة لبدء سيستيمد-مودولز-لواد. إذا كان ناجحا، وهذا لا ينبغي أن يدفع أي شيء. إذا رأيت أي خطأ، ارجع إلى الخطوة 3 واستخدم بيد الجديد لحل الأخطاء المتبقية. إذا كان كل شيء على ما يرام، يمكنك التحقق من أن الخدمة بدأت بنجاح مع: في كثير من الأحيان يمكنك حل هذا النوع من المشاكل مثل هو مبين أعلاه. لمزيد من البحث ننظر في تشخيص مشاكل التمهيد. تشخيص مشاكل التمهيد سيستيمد لديه العديد من الخيارات لتشخيص المشاكل مع عملية التمهيد. راجع تصحيح أخطاء التمهيد ووثائق تصحيح الأخطاء سيستيمد. تشخيص المشاكل مع خدمة معينة السبب: قد لا يتم التقاط جميع الأخطاء مثل المكتبات المفقودة. (مناقشة في تحدث المستخدم: ألوكريدبلكس) إذا كان بعض خدمة سيستيمد يسيء التصرف وكنت ترغب في الحصول على مزيد من المعلومات حول ما يجري، تعيين متغير البيئة سيستيمدلوجليفيل لتصحيح. على سبيل المثال، لتشغيل ديمون سيستيمد-نيتوركد في وضع التصحيح: أو، بشكل مكافئ، تعديل ملف الخدمة مؤقتا لتجميع ما يكفي من الإخراج. على سبيل المثال: إذا كانت معلومات تصحيح الأخطاء مطلوبة على المدى الطويل، فأضف المتغير بالطريقة العادية. شوتونريبوت يأخذ طويلا رهيب إذا كانت عملية الاغلاق يستغرق وقتا طويلا جدا (أو يبدو لتجميد) على الأرجح خدمة لا تخرج هو اللوم. سيستيمد ينتظر بعض الوقت لكل خدمة للخروج قبل محاولة لقتله. لمعرفة ما إذا كنت تتأثر، راجع هذه المقالة. لا يبدو أن العمليات قصيرة الأجل لتسجيل أي إخراج إذا جورنالكتل - u فونيت لا تظهر أي مخرجات لخدمة قصيرة الأجل، والنظر في بيد بدلا من ذلك. على سبيل المثال، إذا فشل سيستيمد-مودولز-load. service، و سيستيمكتل ستاتوس سيستيمد-مودولز-لواد يظهر أنه ركض ك بيد 123، ثم قد تكون قادرا على رؤية الإخراج في مجلة لهذا بيد، جورنالكتل - b PID61123. يتم جمع حقول البيانات الوصفية للمجلة مثل سيستمدونيت و كوم بشكل غير متزامن وتعتمد على دليل بروك للعملية الموجودة. تحديد هذا يتطلب إصلاح النواة لتوفير هذه البيانات عن طريق اتصال مأخذ، على غرار سكمريدنتيالز. وقت التمهيد زيادة مع مرور الوقت بعد استخدام سيستيمد تحليل عدد من المستخدمين قد لاحظت أن وقت التمهيد زادت بشكل ملحوظ بالمقارنة مع ما كان عليه أن يكون. بعد استخدام سيستيمد تحليل اللوم نيتورماناجر يتم الإبلاغ عن اتخاذ كمية كبيرة على غير العادة من الوقت للبدء. وكانت المشكلة بالنسبة لبعض المستخدمين بسبب فارلوجورنال تصبح كبيرة جدا. قد يكون لذلك تأثيرات أخرى على الأداء، مثل حالة سيستيمكتل أو جورنالكتل. على هذا النحو الحل هو إزالة كل ملف داخل المجلد (من الناحية المثالية جعل نسخة احتياطية منه في مكان ما، على الأقل مؤقتا) ومن ثم وضع حد حجم ملف دفتر اليومية كما هو موضح في حد حجم دفتر اليومية. سيستيمد-تمفيلز-setup. service فشل لبدء في التمهيد بدءا من سيستيمد 219، usrlibtmpfiles. dsystemd. conf يحدد سمات أكل للأدلة تحت فارلوجورنال، وبالتالي، يتطلب دعم أكل لتمكين نظام الملفات الذي توجد عليه المجلة. راجع قوائم التحكم في الوصول تمكين أكل للحصول على إرشادات حول كيفية تمكين أكل على نظام الملفات الذي يضم فارلوججورنال. سيستيمكتل تمكين فشل ل سيملينكس في إتسيستمدسيستم إذا كان إتسيستمدسيستم فو. service هو سيملينك و سيستيمكتل تمكين فو. service تشغيله، وسوف تفشل مع هذا الخطأ: هذا هو اختيار تصميم سيستيمد. كحل بديل تمكين بواسطة مسار المسار المطلق: لا يتم بدء تشغيل الخدمات التابعة عند بدء تشغيل خدمة يدويا واحد (في) المثال الشهير هو libvirtd. service الذي يحتاج إلى virtlogd. socket للعمل بشكل صحيح. يتم تعريف التبعيات في usrlibsystemdsystemlibvirtd. service كما يحدد هذا فقط المقابس الضرورية الضرورية لتمكين الخدمات (أي تشغيل تلقائي) أيضا - ولكن لا يبدأ تشغيلها عند بدء تشغيل خدمة ديزابلد (غير تلقائي) على سبيل المثال. من خلال تشغيل سيستمكتل بدء ليبفيرتد وبالتالي فإن الصحيح () طريقة لبدء تشغيل الخدمة يدويا مع سوبرفيرفيسز تعتمد مرة واحدة (بدلا من في كل بداية من النظام) ربما هو نسخة سيستيمد المطبوعة على التمهيد ليست هي نفس الإصدار حزمة مثبتة تحتاج إلى تجديد الخاص بك إينترامفس والإصدارات يجب أن تتطابق. تلميح: يمكن استخدام خطاف بكمن لإعادة إنشاء إينترامفس تلقائيا في كل مرة يتم فيها ترقية سيستيمد. انظر هذا الموضوع المنتدى و باسمانهوكس. systemd هو نظام ومدير خدمة لينكس، متوافق مع سيسف و لسب البرامج النصية الأولى. يوفر سيستيمد قدرات الموازاة العدوانية، ويستخدم مأخذ وتنشيط D - حافلة لبدء الخدمات، ويقدم بناء على الطلب بدءا من الشياطين، وتتبع العمليات باستخدام مجموعات لينكس، ويدعم سنافشوتينغ واستعادة الدولة النظام، ويحافظ جبل ونقاط أوتومونت وتنفذ وضع منطق تحكم الخدمة القائم على التبعية المعاملات. يمكن أن تعمل بمثابة قطرة في استبدال ل سيسفينيت. لمزيد من المعلومات، شاهد الفيديو على youtubewatchvTyMLi8QF6sw لمسؤولي النظام يمكن لمسؤولي النظام زيارة هذه الصفحة. لفهم كيفية استخدام المكالمات سيستمكتل الأصلية التي تحل محل سير العمل القديم في سيسفينيت. لاحظ أن أوامر الخدمة و تشكونفيغ سوف تستمر في العمل كما هو متوقع في العالم سيستيمد. لماذا سيستيمد سيستيمد دوكومنت سيستيمد لديه وثائق شاملة جدا. الرجوع إلى سطر الأوامر التمهيد كيرنيل في التمهيد سيستيمد ينشط (افتراضيا)، الهدف الافتراضي default. target وظيفته لتنشيط الخدمات والوحدات الأخرى عن طريق سحبها عبر التبعيات. لتجاوز الوحدة لتنشيط، سيستيمد تحليل الوسيطات سطر الأوامر نواة الخاصة بها عن طريق خيار سطر الأوامر systemd. unit. قد يتم استخدام هذا التمهيد مؤقتا في وحدة تمهيد مختلفة. يتم استبدال مستويات التشغيل الكلاسيكية على النحو التالي: systemd. unitrescue. target هي وحدة الهدف الخاصة لإعداد نظام قاعدة وقذيفة الانقاذ (على غرار تشغيل مستوى 1) systemd. unitemergency. target. هي مشابهة جدا لتمرير إينتبينش ولكن مع خيار لتمهيد النظام الكامل من هناك systemd. unitmulti-user. target لإعداد غير رسومية نظام متعدد المستخدمين systemd. unitgraphical. target لإعداد شاشة تسجيل الدخول الرسومية. للحصول على تفاصيل حول هذه الوحدات الخاصة سيستيمد التمهيد، عرض الرجل systemd. special الصفحة. إيت سكريبتس ما هي الأداة لإدارة الخدمات مع سيستيمد سيستيمكتل هو الأداة الأساسية للاستخدام. فهو يجمع بين وظائف كل من الخدمة و تشكونفيغ إلى أداة واحدة التي يمكنك استخدامها على سبيل المثال إلى خدمات تمكينية بشكل دائم أو فقط للدورة الحالية. قائمة جميع تشغيل الخدمات الخ: الرجوع إلى رجل سيستيمكتل لمزيد من التفاصيل. سيستمد-كغلز يسرد العملية قيد التشغيل في شكل شجرة. ويمكن أن تظهر بشكل متكرر محتوى أي مجموعة مراقبة معينة. الرجوع إلى رجل سيستيمد-كغلز لمزيد من التفاصيل. كيف يمكنني بدء تشغيل أو تمكين الخدمات على الفور تنشيط خدمة على الفور: إلغاء تنشيط خدمة على الفور: إعادة تشغيل خدمة: يعرض حالة خدمة بما في ذلك ما إذا كان قيد التشغيل أم لا: تمكين بدء الخدمة في بوتوب: تعطيل خدمة عدم بدء أثناء تمهيد: منع الخدمة من البدء ديناميكيا أو يدويا حتى إذا لم يتم كشفها: تحقق مما إذا كانت الخدمة ممكنة أم لا: راجع مان سيستيمكتل للحصول على مزيد من التفاصيل. كيف يمكنني تغيير الهدف (رونليفيل) سيستيمد لديه مفهوم الأهداف التي هي بديل أكثر مرونة ل رونليفيلز في سيسفينيت. يتم محاكاة مستوى التشغيل 3 من قبل multi-user. target. يتم محاكاة مستوى التشغيل 5 من خلال graphical. target. runlevel3.target هو ارتباط رمزي ل multi-user. target و runlevel5.target هو ارتباط رمزي ل graphical. target. يمكنك التبديل إلى رونليفيل 3 عن طريق تشغيل يمكنك التبديل إلى رونليفيل 5 عن طريق تشغيل كيف يمكنني تغيير الافتراضي chartical. target الهدف هو الافتراضي. قد تريد multi-user. target لما يعادل غير رسومية (رونليفيل 3) من سيسف إينيت. يمكن الوصول إلى قائمة كاملة من الأهداف عبر سيستمكتل قائمة وحدات --typetarget سيستيمد لا يستخدم ملف إسينيتاب. كيف أعرف الهدف الحالي كيفية إيقاف تشغيل الجهاز بعض الاحتمالات الأخرى هي: وقف - p. إينيت 0. شوتون - P الآن لاحظ أن التوقف المستخدم للعمل بنفس القوة في إصدارات فيدورا السابقة، ولكن سيستيمد يميز بين الاثنين، لذلك توقف دون معلمات الآن يفعل بالضبط ما يقول - انها مجرد توقف النظام دون إيقاف تشغيله. Does service command work with systemd Yes. It has been modified to call systemctl automatically when dealing with systemd service files. So either of the following commands does the same thing Does chkconfig command work with systemd Yes, for turning onoff services, compatibility has been provided both ways. chkconfig has been modified to call systemctl when dealing with systemd service files. Also systemctl automatically calls chkconfig when dealing with a traditional sysv init file. So either of the following commands does the same thing chkconfig --list doesnt list systemd services, only Sys V services. The output of chkconfig takes note of this, along with supplying additional information. Does system-config-services work with systemd How do I change the number of gettys running by default The simplest way is to edit etcsystemdlogind. conf (man page ): This setting will take effect after reboot. Alternatively, getty. services which open the login prompt can be enabled and started individually. To add another getty: To remove a getty: systemd does not use etcinittab file. How do I set automatic login on a virtual console terminal First create a new service similar to getty. service: then edit ExecStart, Restart and Alias values, like this: and finally reload daemon and start the service: Note that if you exit tty8 session, you wont be able to use it until next reboot or manual start by systemctl, except if you leave Restart as always, but I highly recommend to avoid this according to security reasons. How do I customize a unit file add a custom unit file The best way to customize unit files is to add etcsystemdsystemfoobar. service. d.conf where foobar. service is the name of the service you want to customize. If a directory doesnt already exist, create one and drop a conf file with the settings you want to override. For example, Refer to man systemd. unit page for more details. Dont forget to reload systemd daemon using systemctl daemon-reload and systemctl restart foobar after editing a unit file where foobar is the name of the unit. Also note that you can systemd-delta to list the unit files which have been customized and also the precise differences Special care must be taken when overriding options which can be set muliple times ( ExecStart. ExecStartPre. ExecStartPost are a common example). Assigning some value to the option appends to the existing list, while assiging the empty value resets the list. For example, lets say we have a service file like this: When started, this service will print The same rules apply to snippets in. d directories. This means that snippets which override ExecStart and similar settings, often should start with the empty assignment ExecStart. followed by the new setting. How do I debug systemd issues systemd comes with extensive documentation including several man pages. Referencessystemd - An alternative boot manager systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. See the systemd home page for further information. Warning Experimental code systemd is under active development in Ubuntu although the rough plan would be to default to systemd during development of 15.04. If you want to help its best to be running 15.04. (14.10 might be doable as well..) Installing systemd in Ubuntu may limit the amount of help and support available to you. If you have a commercial support agreement then installing systemd would almost certainly invalidate it. Even if you rely on forums etc, you will probably have to reproduce problems on a standard Ubuntu build before anyone can help you much. If you want to quickly try out systemd, it may be a good idea to create a sandpit system for the purpose (e. g. a virtual machine that you can easily re-install or delete afterwards). If you are installing systemd on a system containing data that you care about, please take a full backup first, and make a plan for restoring from backup in the event that the system ends up unbootable. Personal Package Archive location systemd and related packages are available on this PPA To use the PPA, first add it to your software sources list as follows. Installing systemd systemd can be installed from the PPA as follows. This results in systemd being installed alongside upstart. Boot loader configuration After installation, the machine will still boot under upstart by default. To boot under systemd, the following argument must be specified on the kernel command line: Note that the systemd binary resides now in libsystemd and binsystemd is just a symlink to it. To boot under systemd by default, edit etcdefaultgrub and change the following line: After modifying any grub related configuration files like etcdefaultgrub the following command is needed to bring the changes into effect. systemd prints the following warning on boot: It is advisable to do as suggested and replace etcmtab . It is not only mount that will behave incorrectly otherwise, but also df and probably most other commands that look at the list of mounted filesystems. This change can be made as follows. Using systemd To boot under systemd, select the boot menu entry that you created for the purpose. If you didnt bother to create one, just select the entry for your patched kernel, edit the kernel command line directly in grub and add initlibsystemdsystemd . If a normal boot under systemd is not successful then it is worth trying with the following parameters: systemd. unit specifies the target state that the system should boot to (similar to specifying a run level under sysvinit). emergency. service launches an emergency bash shell on the console without attempting to start any other services. Controlling systemd once booted The main command used to control systemd is systemctl . Some of its subcommands are as follows. systemctl list-units - List all units (where unit is the term for a jobservice) systemctl start NAME. - Start (activate) one or more units systemctl stop NAME. - Stop (deactivate) one or more units systemctl enable NAME. - Enable one or more unit files systemctl disable NAME. - Disable one or more unit files systemctl reboot - Shut down and reboot the system For the complete list, see systemctl(1). systemadm is the GUI equivalent to systemctl . if you like that sort of thing. Remote filesystem mounts If you have NFS mounts listed in etcfstab then systemd will attempt to mount them but will typically do so too early, before networking has been configured. To get the timing correct we need to tell systemd explicitly that the mount depends on networking and on rpc. statd . To do this, create a file under libsystemdsystem named ltmount-unit-namegt. mount with contents as follows. mount-unit-name is the full path to the mountpoint in an escaped format. For example, a mount unit for usrlocal must be named usr-local. mount . mountpoint is the local mountpoint server : share specify the remote filesystem in the same manner as for etcfstab See systemd. unit(5) and systemd. mount(5) for further details. A similar approach will probably be required for other remote filesystem types such as nfs4 and cifs Useful snippets To see which other units a service depends on: systemd quickstart for upstart users Implementation issues Packaging of units A unit properly belongs in the package of the daemon that it starts. systemd units are already included in some upstream packages and some Debian Experimental packages. They will probably appear in Ubuntu packages in due course, unless Ubuntu maintainers deliberately remove them. The systemd-extra-units package is intended only to make systemd usable in the short term by shipping some important units that dont yet exist in other Ubuntu packages. It should be scaled back as and when units start to appear in their proper places, and should eventually be dropped. Dependencies on things not yet available in Ubuntu Upstream systemd depends on recent upstream changes to several other packages that are not yet available in Ubuntu. These have been worked around by reverting the relevant changes in systemd or disabling the relevant feature. In brief these are: systemd 15 wants libnotify gt 0.7 and vala 0.11 Relevant changes have been reverted in order to build with libnotify 0.5.0 and vala 0.9. systemd wants sbinagetty but DebianUbuntu renames it to sbingetty sbinagetty will be added as a link in Debian wheezy (Debian bug 603786 ). systemd invokes agetty - s where the option - s was added by recent upstream commits in util-linux . Units getty. service and serial-getty. service have been patched to remove this option. systemd-fsck invokes fsck - l where the option - l was added by recent upstream commits in util-linux systemd-fsck has been patched to remove this option. Networking NetworkManager. service just starts NetworkManager and does not wait for it to bring up a network interface. This seems appropriate, but network. target should not become active until a network connection is up. An extra unit, wait-for-network. service . has been created to delay network. target . The appropriate way to wait for a network connection with NetworkManager appears to be nm-online . but this binary is not shipped in the Debian or Ubuntu packages for some reason. For systemd-extra-units 0.2 a simple shell loop has been used. This is effective, but hardly in the spirit of systemd. TODO: Ask whether nm-online could be shipped in the network-manager package, or re-implement something similar if not. NOTE: The network-manager package from Debian experimental does ship nm-online and will be uploaded to wheezy as soon as squeeze is released. Remote filesystem mounts systemd reads etcfstab and automatically creates a mount unit for each entry. The automatically generated dependencies for these units are insufficient in the case of remote filesystems. The correct dependencies can be specified explicitly in a mount unit configuration file (see above) but ideally this should be handled automatically. Proposal: When parsing an etcfstab entry, systemd should look for a unit template named after the filesystem type (e. g. nfs. mount for an NFS mount). If a template is found it should be used, with appropriate substitutions. Otherwise systemd should fall back to creating the mount unit with default settings as per the current behaviour. TODO: Write a patch for this and propose it upstream. The upstart job for portmap saves state using pmapdump and restores it using pmapset . The sysvinit script in Debian does the same thing. These actions appear redundant because portmap itself saves state to varrunportmapmapping after each change. My guess is that this is all based on instructions in the upstream source README, which may be out of date or just misleading. TODO: Confirm whether pmapdump pmapset really serve some purpose and include them in the systemd unit if so. etccron. danacron invokes anacron via the upstart job, which wont work while booted under systemd. A change to the anacron package would be needed to address this. etcdefault Existing sysvinit style scripts read configuration in the form of variable assignments from a file under etcdefault . A policy decision is needed on whether systemd units will do the same. Advantages: Separates configuration from code, simplifies package upgrade (i. e. same reasoning that applies to the existing sysvinit scripts). Disadvantages: Extra complexity. Some may argue that systemd units are simple enough to be treated entirely as configuration files. etcdefault files can be read using the EnvironmentFile parameter in a systemd service unit. However, this is not fully compatible with the shell. In particular the quoting rules differ. It is not possible to write an environment variable assignment containing whitespace or literal quotes in a way that both a legacy init script and systemd will understand. TODO: Decide whether systemd will use etcdefault files. Needs discussion with Debian maintainers. There would be little benefit in Ubuntu going its own way on this. TODO: Finish off patch for shell compatible quoting support and submit upstream. Other TODO Items Unit(s) for static network configuration without NetworkManager . Units for remaining native Upstart jobs in a default Ubuntu install that dont currently have systemd equivalents: apport cups log dmesg after boot failsafe X session irqbalance bring up virtual network devices Desktop integration for systemadm Plymouth integration Workarounds Failures on software-upgrades The post-installation script of packages uses sbinstart and sbinstop to start and stop (running) services in an upstart environment. Both binaries are symlinks to sbininitctl shipped with upstart package. Unfortunately, software-upgrades break when switching to systemd as an alternative init-system on Ubuntu systems, more precisely the software-management tool dpkg breaks. NOTE: Below workarounds were tested on Ubuntuprecise with a very early systemd v43 (so be careful). Bug 1008837 cups fails to installupgrade with systemd A little demo Workaround: Using an initctl replacement On IRC I discussed with Michael Biebl and others on the topic and Michael had concerns using bintrue as a symlink to sbinstart and sbinstop . In the end, the idea of an initctl replacement was born. Rename the original sbininitctl binary: Edit a new sbininitctl replacement file (Thanks mbiebl and grawity): Make the new script executable: Create and list a divert for the original initctl (this prevents e. g. its removal on upgrades): Remove the new divert in case you want to restore original behaviour: Software-upgrades touching startstop of daemons should now work fine within an upstart or systemd environment. systemd ( pitti 2015-01-22 09:56:01)
Comments
Post a Comment