systemctl - التحكم في نظام ومدير الخدمات systemd
ملخص
systemctl [الخيارات...] الأمر [الوحدة...]
الوصف
يمكن استخدام systemctl لفحص والتحكم في حالة نظام ومدير الخدمات "systemd". يرجى الرجوع إلى systemd(1) للحصول على مقدمة للمفاهيم والوظائف الأساسية التي يديرها هذا الأداة.
الأوامر
الأوامر التالية مدعومة:
أوامر الوحدة (الفحص والتعديل)
list-units [النمط...]
عرض الوحدات التي يحتفظ بها systemd حاليًا في الذاكرة. يتضمن ذلك الوحدات التي تتم الإشارة إليها مباشرةً أو من خلال تبعية، والوحدات التي يتم تثبيتها بواسطة التطبيقات برمجيًا، أو الوحدات التي كانت نشطة في الماضي وفشلت. افتراضيًا، يتم عرض الوحدات النشطة فقط، أو تلك التي لديها مهام معلقة، أو تلك التي فشلت؛ يمكن تغيير ذلك باستخدام الخيار --all. إذا تم تحديد نمط واحد أو أكثر، فسيتم عرض الوحدات التي تطابق أحدها فقط. يتم أيضًا تصفية الوحدات المعروضة بواسطة --type= و --state= إذا تم تحديد هذه الخيارات.
لاحظ أن هذا الأمر لا يعرض قوالب الوحدات، ولكنه يعرض فقط مثيلات قوالب الوحدات. قوالب الوحدات التي لم يتم إنشاؤها ليست قابلة للتشغيل، ولن تظهر أبدًا في ناتج هذا الأمر. على وجه التحديد، هذا يعني أن [email protected] لن يتم عرضه أبدًا في هذه القائمة - إلا إذا تم إنشاؤها، على سبيل المثال، كـ _. استخدم list-unit-files (انظر أدناه) لعرض ملفات قوالب الوحدات المثبتة.
ينتج عنه ناتج مشابه لما يلي
الوحدة تم التحميل نشط الحالة الوصف
sys-module-fuse.device تم التحميل نشط متصل /sys/module/fuse
-.mount تم التحميل نشط مثبت جذر التثبيت
boot-efi.mount تم التحميل نشط مثبت /boot/efi
systemd-journald.service تم التحميل نشط قيد التشغيل خدمة التسجيل
systemd-logind.service تم التحميل نشط قيد التشغيل خدمة تسجيل الدخول
● \_ تم التحميل فشل فشل مدير المستخدم لـ UID 1000
...
systemd-tmpfiles-clean.timer تم التحميل نشط في انتظار التنظيف اليومي للدلائل المؤقتة
تم التحميل = يعكس ما إذا تم تحميل تعريف الوحدة بشكل صحيح.
نشط = حالة تنشيط الوحدة عالية المستوى، أي تعميم للحالة.
الحالة = حالة تنشيط الوحدة منخفضة المستوى، وتعتمد القيم على نوع الوحدة.
تمت إدراج 123 وحدة. مرر --all لعرض الوحدات التي تم تحميلها ولكنها غير نشطة.
لعرض جميع ملفات الوحدات المثبتة، استخدم 'systemctl list-unit-files'.
يتم تسطير الرأس ووحدة آخر من نوع معين إذا كان الجهاز يدعم ذلك. يتم عرض نقطة ملونة بجوار الخدمات التي تم إخفاؤها أو لم يتم العثور عليها أو فشلت بطريقة أخرى.
يُظهر عمود LOAD حالة التحميل، وهي إحدى الحالات التالية: loaded، not-found، bad-setting، error، masked. يُظهر عمود ACTIVE الحالة العامة للوحدة، وهي إحدى الحالات التالية:
الجدول 1. حالات ACTIVE للوحدة
┌──────────────┬─────────────────────────────────────┐
│ الحالة │ الوصف |
├──────────────┼─────────────────────────────────────┤
│ active │ بدأت، وتم ربطها، وتم توصيلها بالكهرباء، ...|
│ │ اعتمادًا على نوع الوحدة. |
├──────────────┼─────────────────────────────────────┤
│ inactive │ توقفت، وتم إلغاء ربطها، وفصلها عن الكهرباء،...|
│ │ اعتمادًا على نوع الوحدة. |
├──────────────┼─────────────────────────────────────┤
│ failed │ مشابهة لـ inactive، ولكن فشلت الوحدة بطريقة ما|
│ │ (أرجع البرنامج رمز خطأ عند الخروج، أو تعطل، أو|
│ │ انتهت مهلة عملية، أو بعد عدد كبير جدًا من عمليات|
│ │ إعادة التشغيل). |
├──────────────┼─────────────────────────────────────┤
│ activating │ تتغير من inactive إلى active. |
├──────────────┼─────────────────────────────────────┤
│ deactivating │ تتغير من active إلى inactive. |
├──────────────┼─────────────────────────────────────┤
│ maintenance │ الوحدة غير نشطة وتجري عملية صيانة. |
├──────────────┼─────────────────────────────────────┤
│ reloading │ الوحدة نشطة ويتم إعادة تحميل إعداداتها. |
├──────────────┼─────────────────────────────────────┤
│ refreshing │ الوحدة نشطة ويتم تنشيط تركيب جديد في مساحتها.|
└──────────────┴─────────────────────────────────────┘
يُظهر العمود SUB الحالة التفصيلية للوحدة الخاصة بنوع الوحدة، ويمكن أن تختلف القيم الممكنة بناءً على نوع الوحدة. قائمة القيم الممكنة لـ LOAD و ACTIVE و SUB ليست ثابتة، وقد تضيف إصدارات systemd الجديدة قيمًا وتزيلها.
systemctl --state=help
يمكن استخدام الأمر لعرض المجموعة الحالية من القيم الممكنة.
هذا هو الأمر الافتراضي.
list-automounts [PATTERN...]
يسرد وحدات التثبيت التلقائي الموجودة حاليًا في الذاكرة، مرتبة حسب مسار التثبيت. إذا تم تحديد نمط أو أكثر، فسيتم عرض وحدات التثبيت التلقائي التي تطابق أحد هذه الأنماط فقط. ينتج عنه إخراج مشابه لما يلي:
WHAT WHERE MOUNTED IDLE TIMEOUT UNIT
/dev/sdb1 /mnt/test no 120s mnt-test.automount
binfmt_misc /proc/sys/fs/binfmt_misc yes 0 proc-sys-fs-binfmt_misc.automount
تمت فهرستة 2 من وحدات التثبيت التلقائي.
راجع أيضًا --show-types و --all و --state=.
تمت إضافته في الإصدار 252.
list-paths [PATTERN...]
يسرد وحدات المسار الموجودة حاليًا في الذاكرة، مرتبة حسب المسار. إذا تم تحديد نمط أو أكثر، فسيتم عرض وحدات المسار التي تطابق أحد هذه الأنماط فقط. ينتج عنه إخراج مشابه لما يلي:
PATH CONDITION UNIT ACTIVATES
/run/systemd/ask-password DirectoryNotEmpty systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service
/run/systemd/ask-password DirectoryNotEmpty systemd-ask-password-wall.path systemd-ask-password-wall.service
/var/cache/cups/org.cups.cupsd PathExists cups.path cups.service
تمت فهرستة 3 من وحدات المسار.
راجع أيضًا --show-types و --all و --state=.
تمت إضافته في الإصدار 254.
list-sockets [PATTERN...] يسرد وحدات المقبس الموجودة حاليًا في الذاكرة، مرتبة حسب عنوان الاستماع. إذا تم تحديد نمط أو أكثر، فسيتم عرض وحدات المقبس التي تطابق أحد هذه الأنماط فقط. ينتج عنه إخراج مشابه لما يلي:
LISTEN UNIT ACTIVATES
kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
/dev/rfkill systemd-rfkill.socket systemd-rfkill.service
...
تمت فهرستة 5 من وحدات المقبس.
ملاحظة: نظرًا لأن العناوين قد تحتوي على مسافات، فإن هذا الإخراج غير مناسب للاستهلاك البرمجي.
راجع أيضًا --show-types و --all و --state=.
تمت إضافته في الإصدار 202.
list-timers [PATTERN...]
يسرد وحدات المؤقت الموجودة حاليًا في الذاكرة، مرتبة حسب الوقت الذي ستنفذ فيه في المرة القادمة. إذا تم تحديد نمط أو أكثر، فسيتم عرض الوحدات التي تطابق أحد هذه الأنماط فقط. ينتج عنه إخراج مشابه لما يلي:
NEXT LEFT LAST PASSED UNIT ACTIVATES
- - Thu 2017-02-23 13:40:29 EST 3 days ago ureadahead-stop.timer ureadahead-stop.service
Sun 2017-02-26 18:55:42 EST 1min 14s left Thu 2017-02-23 13:54:44 EST 3 days ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Sun 2017-02-26 20:37:16 EST 1h 42min left Sun 2017-02-26 11:56:36 EST 6h ago apt-daily.timer apt-daily.service
Sun 2017-02-26 20:57:49 EST 2h 3min left Sun 2017-02-26 11:56:36 EST 6h ago snapd.refresh.timer snapd.refresh.service
يُظهر NEXT الوقت التالي الذي سيتم فيه تشغيل المؤقت.
يُظهر LEFT المدة المتبقية حتى يتم تشغيل المؤقت.
يُظهر LAST آخر مرة تم فيها تشغيل المؤقت.
يُظهر PASSED المدة التي انقضت منذ آخر مرة تم فيها تشغيل المؤقت.
يُظهر UNIT اسم المؤقت.
يُظهر ACTIVATES اسم الخدمة التي يتم تفعيلها عند تشغيل المؤقت.
راجع أيضًا --all و --state=.
تمت إضافته في الإصدار 209.
is-active PATTERN...
يتحقق مما إذا كانت أي من الوحدات المحددة نشطة (أي قيد التشغيل). يُرجع رمز خروج 0 إذا كانت وحدة واحدة على الأقل نشطة، أو رمزًا غير صفري بخلاف ذلك. ما لم يتم تحديد --quiet، فسيؤدي هذا أيضًا إلى طباعة الحالة الحالية للوحدة إلى الإخراج القياسي.
is-failed [PATTERN...]
يتحقق مما إذا كانت أي من الوحدات المحددة في حالة "فاشلة". إذا لم يتم تحديد أي وحدة، فتحقق مما إذا كانت هناك أي وحدات فاشلة أو دورات ترتيب، وهو ما يتوافق مع حالة "متدهورة" التي يتم إرجاعها بواسطة is-system-running. يُرجع رمز خروج 0 إذا كانت وحدة واحدة على الأقل قد فشلت، أو رمزًا غير صفري بخلاف ذلك. ما لم يتم تحديد --quiet، فسيؤدي هذا أيضًا إلى طباعة الحالة الحالية للوحدة أو النظام إلى الإخراج القياسي.
تمت إضافته في الإصدار 197.
status [PATTERN...|PID...]
يعرض معلومات حالة وقت التشغيل حول النظام بأكمله أو حول وحدة واحدة أو أكثر متبوعة بأحدث بيانات السجل من السجل. إذا لم يتم تحديد أي وسائط موضعية، وإذا لم يتم توفير مرشح وحدة باستخدام --type=، أو --state=، أو --failed، فإنه يعرض حالة النظام بأكمله. إذا تم دمجه مع --all، فإنه يعرض بعد ذلك حالة جميع الوحدات. إذا تم تحديد وسائط موضعية، فسيتم التعامل مع كل وسيطة موضعية إما كاسم وحدة لعرضها، أو كنمط عام لعرض الوحدات التي تتطابق أسماؤها مع هذا النمط، أو كمعرف عملية (PID) لعرض الوحدة التي تحتوي على هذا المعرف. عند استخدام --type=، أو --state=، أو --failed، يتم أيضًا تصفية الوحدات حسب النوع والحالة النشطة.
تهدف هذه الوظيفة إلى إنشاء إخراج قابل للقراءة البشرية. إذا كنت تبحث عن إخراج قابل للتحليل بواسطة الكمبيوتر، فاستخدم show بدلاً من ذلك. افتراضيًا، تعرض هذه الوظيفة 10 أسطر فقط من الإخراج وتقوم باقتطاع الأسطر لتناسب نافذة الجهاز. يمكن تغيير ذلك باستخدام --lines و --full، انظر أعلاه. بالإضافة إلى ذلك، يستخدم journalctl --unit=NAME أو journalctl --user-unit=NAME مرشحًا مشابهًا للرسائل وقد يكون أكثر ملاءمة.
لاحظ أن هذه العملية تعرض فقط حالة وقت التشغيل، أي معلومات حول الاستدعاء الحالي للوحدة (إذا كانت قيد التشغيل) أو آخر استدعاء (إذا لم تعد قيد التشغيل ولم يتم إزالتها من الذاكرة). يمكن استرداد معلومات حول الاستدعاءات السابقة، أو الاستدعاءات من عمليات تشغيل النظام السابقة، أو الاستدعاءات السابقة التي تمت إزالتها بالفعل من الذاكرة عبر journalctl --unit=.
يقوم systemd بتحميل الوحدات حسب الحاجة، لذلك فإن تشغيل الأمر status سيحاول تحميل ملف. وبالتالي، فإن الأمر غير مفيد لتحديد ما إذا كان قد تم تحميل شيء بالفعل أم لا. قد يتم أيضًا إلغاء تحميل الوحدات بسرعة بعد اكتمال العملية إذا لم يكن هناك سبب للاحتفاظ بها في الذاكرة.
مثال 1. مثال على الناتج من الأمر systemctl status
$ systemctl status bluetooth
● bluetooth.service - خدمة البلوتوث
تم التحميل: تم التحميل (/usr/lib/systemd/system/bluetooth.service; مُمكّن؛ الإعداد المسبق: مُفعَّل)
نشط: نشط (قيد التشغيل) منذ الأربعاء 2017-01-04 13:54:04 بتوقيت شرق الولايات المتحدة؛ قبل أسبوع واحد
الوثائق: man:bluetoothd(8)
المعرّف الرئيسي: 930 (bluetoothd)
الحالة: "قيد التشغيل"
المهام: 1
الذاكرة: 648.0 كيلوبايت
وحدة المعالجة المركزية: 435 مللي ثانية
مجموعة التحكم: /system.slice/bluetooth.service
└─930 /usr/lib/bluetooth/bluetoothd
12 يناير 10:46:45 example.com bluetoothd[8900]: لا يوجد عدد كافٍ من المعرّفات المتاحة لتسجيل الخدمة 12 يناير 10:46:45 example.com bluetoothd[8900]: تعذر تسجيل خدمة الوقت الحالية 12 يناير 10:46:45 example.com bluetoothd[8900]: gatt-time-server: خطأ في الإدخال/الإخراج (5)
تستخدم النقطة ("●") الألوان في المحطات الطرفية المدعومة لتلخيص حالة الوحدة في لمحة. بالإضافة إلى لونها، يختلف شكلها وفقًا لحالتها: "غير نشط" أو "في وضع الصيانة" عبارة عن دائرة بيضاء ("○")، و"نشط" عبارة عن نقطة خضراء ("●")، و"في طور إلغاء التنشيط" عبارة عن نقطة بيضاء، و"فاشل" أو "خطأ" عبارة عن علامة "×" حمراء، و"إعادة التحميل" أو "التحديث" عبارة عن سهم دائري أخضر في اتجاه عقارب الساعة ("↻").
سيُظهر السطر "تم التحميل:" القيمة "تم التحميل" إذا تم تحميل الوحدة في الذاكرة.
تشمل القيم الأخرى المحتملة لـ "تم التحميل:" ما يلي: "خطأ" إذا كانت هناك مشكلة في تحميلها، و"غير موجود" إذا لم يتم العثور على ملف وحدة لهذه الوحدة، و"إعداد غير صالح" إذا لم يتمكن من تحليل إعداد أساسي لملف الوحدة، و"محجوب" إذا تم حجب ملف الوحدة. بالإضافة إلى إظهار المسار إلى ملف الوحدة، سيُظهر هذا السطر أيضًا حالة التمكين. يتم تضمين الوحدات المُمكّنة في شبكة التبعية بين الوحدات، وبالتالي يتم تشغيلها عند بدء التشغيل أو عبر شكل آخر من أشكال التنشيط. راجع الجدول الكامل للحالات المحتملة للتمكين - بما في ذلك تعريف "محجوب" - في الوثائق الخاصة بالأمر is-enabled.
يُظهر السطر "نشط:" الحالة النشطة. القيمة هي عادةً "نشط" أو "غير نشط". يمكن أن يعني "نشط" أنه تم تشغيله، أو ربطه، أو توصيله، وما إلى ذلك، اعتمادًا على نوع الوحدة. يمكن أن تكون الوحدة أيضًا في طور تغيير حالتها، مما يُبلغ عن حالة "في طور التنشيط" أو "في طور إلغاء التنشيط". يتم إدخال حالة "فاشل" الخاصة عندما فشلت الخدمة بطريقة ما، مثل التعطل، أو الخروج برمز خطأ، أو انتهاء المهلة الزمنية. إذا تم إدخال الحالة الفاشلة، فسيتم تسجيل السبب لوضعه في الاعتبار لاحقًا.
show [PATTERN...|JOB...]
اعرض خصائص وحدة أو أكثر، أو مهام، أو المدير نفسه. إذا لم يتم تحديد أي وسيط، فسيتم عرض خصائص المدير. إذا تم تحديد اسم وحدة، فسيتم عرض خصائص الوحدة، وإذا تم تحديد معرف مهمة، فسيتم عرض خصائص المهمة. افتراضيًا، يتم إخفاء الخصائص الفارغة. استخدم `--all` لعرضها أيضًا. لتحديد خصائص معينة لعرضها، استخدم `--property=`. هذا الأمر مخصص للاستخدام كلما كان مطلوبًا إخراجًا قابلاً للتحليل بواسطة الكمبيوتر. استخدم `status` إذا كنت تبحث عن إخراج مُنسَّق يسهل قراءته.
العديد من الخصائص التي يعرضها systemctl تتوافق مباشرةً مع إعدادات التكوين الخاصة بنظام التشغيل ومدير الخدمات وملفات الوحدات الخاصة به. لاحظ أن الخصائص التي يعرضها الأمر هي بشكل عام نسخ مُبسَّطة ومنسَّقة من إعدادات التكوين الأصلية، وتعرض حالة وقت التشغيل بالإضافة إلى التكوين. على سبيل المثال، تتضمن الخصائص المعروضة لوحدات الخدمة مُعرِّف العملية الرئيسية الحالي للخدمة باسم "MainPID" (وهي حالة وقت التشغيل)، ويتم دائمًا عرض إعدادات الوقت كخصائص تنتهي باللاحقة "...USec"، حتى إذا انتهت خيارات التكوين المقابلة باللاحقة "...Sec"، لأن الميكروثانية هي وحدة الوقت الموحدة المستخدمة داخليًا بواسطة نظام التشغيل ومدير الخدمات.
للحصول على تفاصيل حول العديد من هذه الخصائص، راجع وثائق واجهة D-Bus التي تدعم هذه الخصائص، انظر org.freedesktop.systemd1(5).
cat PATTERN...
يعرض الملفات الداعمة لوحدة واحدة أو أكثر. يطبع "fragment" و "drop-ins" (ملفات المصدر) للوحدات. يسبق كل ملف تعليق يتضمن اسم الملف. لاحظ أن هذا يعرض محتويات الملفات الداعمة الموجودة على القرص، والتي قد لا تتطابق مع فهم مدير النظام لهذه الوحدات إذا تم تحديث أي ملفات وحدات على القرص ولم يتم تنفيذ الأمر daemon-reload منذ ذلك الحين.
تمت إضافته في الإصدار 209.
help PATTERN...|PID...
يعرض صفحات الدليل لوحدة واحدة أو أكثر، إذا كانت متوفرة. إذا تم إعطاء مُعرِّف عملية، فسيتم عرض صفحات الدليل للوحدة التي تنتمي إليها العملية.
تمت إضافته في الإصدار 185.
list-dependencies [UNIT...]
يعرض الوحدات المطلوبة والمرغوبة من قبل الوحدات المحددة. يسرد بشكل متكرر الوحدات التي تتبع التبعيات Requires=, Requisite=, Wants=, ConsistsOf=, BindsTo=, و Upholds=. إذا لم يتم تحديد أي وحدات، يتم تضمين default.target ضمنيًا.
الوحدات التي يتم عرضها يتم تصفيتها أيضًا باستخدام --type= و --state= إذا تم تحديد هذه الخيارات. لاحظ أنه لن نتمكن من استخدام هيكل شجرة في هذه الحالة، لذا يتم تضمين --plain ضمنيًا.
افتراضيًا، يتم توسيع وحدات الهدف (target) فقط بشكل متكرر. عند تمرير --all، يتم توسيع جميع الوحدات الأخرى بشكل متكرر أيضًا.
يمكن استخدام الخيارات --reverse و --after و --before لتغيير أنواع التبعيات التي يتم عرضها.
لاحظ أن هذا الأمر يسرد فقط الوحدات التي تم تحميلها حاليًا في الذاكرة بواسطة مدير الخدمات. على وجه الخصوص، هذا الأمر غير مناسب للحصول على قائمة شاملة بجميع التبعيات العكسية لوحدة معينة، لأنه لن يسرد التبعيات التي تعلن عنها الوحدات التي لم يتم تحميلها حاليًا.
تمت إضافته في الإصدار 198.
start PATTERN...
يبدأ (ينشط) وحدة واحدة أو أكثر محددة في سطر الأوامر.
لاحظ أن أنماط الوحدات العامة تتوسع إلى أسماء وحدات موجودة حاليًا في الذاكرة. الوحدات التي ليست نشطة وليست في حالة فشل عادةً لا تكون في الذاكرة، ولن يتم مطابقتها بواسطة أي نمط. بالإضافة إلى ذلك، في حالة الوحدات المثيلة، غالبًا ما يكون نظام systemd غير مدرك لاسم المثيل حتى يتم بدء المثيل. لذلك، فإن استخدام الأنماط العامة مع الأمر start له فائدة محدودة. أيضًا، لا يتم أخذ الأسماء المستعارة الثانوية للوحدات في الاعتبار.
يمكن استخدام الخيار --all لتشغيل الوحدات غير النشطة أيضًا والتي تتم الإشارة إليها بواسطة وحدات أخرى مُحمّلة. لاحظ أن هذا ليس هو نفسه تشغيل "جميع" الوحدات الممكنة، لأنه كما هو موضح في الفقرة السابقة، فإن هذه القائمة غير محددة جيدًا. ومع ذلك، قد يكون systemctl start --all GLOB مفيدًا إذا كانت جميع الوحدات التي يجب أن تتطابق مع النمط يتم تضمينها بواسطة هدف معروف بأنه مُحمّل.
stop PATTERN...
إيقاف (إلغاء تنشيط) وحدة أو أكثر محددة في سطر الأوامر.
سيفشل هذا الأمر إذا لم تكن الوحدة موجودة أو إذا كان إيقاف الوحدة ممنوعًا (انظر RefuseManualStop= في systemd.unit(5)). لن يفشل إذا فشلت أي من الأوامر المكوّنة لإيقاف الوحدة (ExecStop=، إلخ)، لأن المدير سيقوم بإنهاء الوحدة بالقوة على أي حال.
إذا كانت الوحدة التي يتم إيقافها لا تزال قادرة على التشغيل بواسطة وحدات أخرى، فستظهر تحذير يحتوي على أسماء الوحدات المحفزة. يمكن استخدام --no-warn لقمع التحذير.
reload PATTERN...
يطلب من جميع الوحدات المدرجة في سطر الأوامر إعادة تحميل تكوينها. لاحظ أن هذا سيؤدي إلى إعادة تحميل التكوين الخاص بالخدمة، وليس ملف تكوين الوحدة في نظام systemd. إذا كنت تريد أن يقوم systemd بإعادة تحميل ملف تكوين الوحدة، فاستخدم الأمر daemon-reload. بمعنى آخر: في حالة مثال Apache، سيؤدي هذا إلى إعادة تحميل httpd.conf الخاص بـ Apache في خادم الويب، وليس ملف وحدة apache.service الخاص بـ systemd.
يجب عدم الخلط بين هذا الأمر وأمر daemon-reload.
restart PATTERN...
إيقاف ثم تشغيل وحدة أو أكثر محددة في سطر الأوامر. إذا لم تكن الوحدات قيد التشغيل بالفعل، فسيتم تشغيلها.
لاحظ أن إعادة تشغيل وحدة باستخدام هذا الأمر لا تقوم بالضرورة بإفراغ جميع موارد الوحدة قبل بدء تشغيلها مرة أخرى. على سبيل المثال، ستظل منشأة تخزين واصفات الملفات الخاصة بالخدمة (انظر FileDescriptorStoreMax= في systemd.service(5)) سليمة طالما أن الوحدة لديها مهمة معلقة، ولا يتم مسحها إلا عندما تتوقف الوحدة تمامًا ولا توجد مهام معلقة بعد الآن. إذا كان من المفترض أن يتم إفراغ مخزن واصفات الملفات أيضًا أثناء عملية إعادة التشغيل، فيجب إصدار أمر systemctl stop صريح متبوعًا بأمر systemctl start.
try-restart PATTERN...
إيقاف ثم تشغيل وحدة أو أكثر محددة في سطر الأوامر إذا كانت الوحدات قيد التشغيل. لا يفعل شيئًا إذا لم تكن الوحدات قيد التشغيل.
reload-or-restart PATTERN...
إعادة تحميل وحدة أو أكثر إذا كانت تدعم ذلك. إذا لم يكن الأمر كذلك، فقم بإيقافها ثم تشغيلها بدلاً من ذلك. إذا لم تكن الوحدات قيد التشغيل بالفعل، فسيتم تشغيلها.
له وظيفة مختلفة قليلاً عند استخدامه بالاشتراك مع --marked، انظر أدناه.
try-reload-or-restart PATTERN...
إعادة تحميل وحدة أو أكثر إذا كانت تدعم ذلك. إذا لم يكن الأمر كذلك، فقم بإيقافها ثم تشغيلها بدلاً من ذلك. لا يفعل شيئًا إذا لم تكن الوحدات قيد التشغيل.
أُضيف في الإصدار 229.
isolate UNIT
ابدأ الوحدة المحددة في سطر الأوامر والوحدات التابعة لها وأوقف جميع الوحدات الأخرى، إلا إذا كان لديها IgnoreOnIsolate=yes (راجع systemd.unit(5)). إذا تم إعطاء اسم وحدة بدون امتداد، فسيتم افتراض امتداد ".target".
هذا الأمر خطير، لأنه سيوقف على الفور العمليات التي لم يتم تمكينها في الهدف الجديد، وربما تتضمن البيئة الرسومية أو المحطة الطرفية التي تستخدمها حاليًا.
لاحظ أن هذه العملية مسموح بها فقط على الوحدات التي تم تمكين AllowIsolate= فيها. راجع systemd.unit(5) للحصول على التفاصيل.
kill PATTERN...
أرسل إشارة عملية UNIX إلى عملية واحدة أو أكثر من الوحدة. استخدم --kill-whom= لتحديد العملية التي سيتم إرسال الإشارة إليها. استخدم --signal= لتحديد الإشارة التي سيتم إرسالها. اجمع مع --kill-value= لكي يتم إرسال إشارة POSIX في الوقت الفعلي مع قيمة مرتبطة بها.
clean PATTERN...
أزل بيانات التكوين والحالة والذاكرة المؤقتة والسجلات ووقت التشغيل أو مخزن واصف الملف للوحدات المحددة. استخدم --what= لتحديد نوع المورد الذي سيتم إزالته. بالنسبة لوحدات الخدمة، يمكن استخدام هذا لإزالة الأدلة التي تم تكوينها باستخدام ConfigurationDirectory= أو StateDirectory= أو CacheDirectory= أو LogsDirectory= أو RuntimeDirectory=، راجع systemd.exec(5) للحصول على التفاصيل. ويمكن استخدامه أيضًا لمسح مخزن واصف الملف كما هو ممكن عبر FileDescriptorStoreMax=، راجع systemd.service(5) للحصول على التفاصيل. بالنسبة لوحدات المؤقت، يمكن استخدامه لمسح بيانات الطابع الزمني المستمر إذا تم استخدام Persistent= وتم تحديد --what=state، راجع systemd.timer(5) للحصول على التفاصيل. ينطبق هذا الأمر فقط على الوحدات التي تستخدم أحد هذه الإعدادات. إذا لم يتم تحديد --what=، فسيتم إزالة البيانات الموجودة في الذاكرة المؤقتة ووقت التشغيل، بالإضافة إلى مخزن واصف الملف (حيث تكون هذه الأنواع الثلاثة من الموارد بشكل عام متكررة ويمكن إعادة إنتاجها في المرة التالية لتشغيل الوحدة). يمكن فصل القيم المتعددة بفواصل.
لاحظ أنه يجب إيقاف الوحدات المحددة لتنفيذ هذه العملية.
جدول 2. القيم الممكنة لـ --what=
┌─────────────────┬────────────────────────────────────┐
│ القيمة │ إعداد الوحدة │
├─────────────────┼────────────────────────────────────┤
│ "runtime" │ `RuntimeDirectory=` │
├─────────────────┼────────────────────────────────────┤
│ "state" │ `StateDirectory=` │
├─────────────────┼────────────────────────────────────┤
│ "cache" │ `CacheDirectory=` │
├─────────────────┼────────────────────────────────────┤
│ "logs" │ `LogsDirectory=` │
├─────────────────┼────────────────────────────────────┤
│ "configuration" │ `ConfigurationDirectory=` │
├─────────────────┼────────────────────────────────────┤
│ "fdstore" │ `FileDescriptorStorePreserve=` │
├─────────────────┼────────────────────────────────────┤
│ "all" │ الكل أعلاه │
├─────────────────┼────────────────────────────────────┤
│ "help" │ عرض القيم المدعومة والخروج │
└─────────────────┴────────────────────────────────────┘
أُضيفت في الإصدار 243.
freeze PATTERN...
يجمد وحدة أو أكثر محددة في سطر الأوامر باستخدام مُجمِّد cgroup.
سيؤدي تجميد الوحدة إلى تعليق جميع العمليات الموجودة داخل cgroup المقابلة للوحدة. يعني التعليق أن عمليات الوحدة لن تتم جدولتها للتنفيذ على وحدة المعالجة المركزية حتى يتم تذويبها. لاحظ أن هذا الأمر مدعوم فقط على الأنظمة التي تستخدم التسلسل الهرمي الموحد لـ cgroup. يتم تذويب الوحدة تلقائيًا قبل تنفيذ أي مهمة عليها، على سبيل المثال، قبل إيقاف الوحدة.
أُضيفت في الإصدار 246.
thaw PATTERN...
يُذيب (يزيل التجميد) وحدة أو أكثر محددة في سطر الأوامر.
هذا هو العملية العكسية لأمر `freeze`، ويستأنف تنفيذ العمليات في cgroup الخاصة بالوحدة.
أُضيفت في الإصدار 246.
set-property UNIT PROPERTY=VALUE...
يُعيّن خصائص الوحدة المحددة في وقت التشغيل، عندما يكون ذلك مدعومًا. يسمح هذا بتغيير معلمات التكوين مثل إعدادات التحكم في الموارد في وقت التشغيل. قد لا يمكن تغيير جميع الخصائص في وقت التشغيل، ولكن يمكن تغيير العديد من إعدادات التحكم في الموارد (خاصة تلك الموجودة في `systemd.resource-control(5)`). يتم تطبيق التغييرات على الفور، ويتم تخزينها على القرص للاستخدام في عمليات الإقلاع المستقبلية، إلا إذا تم تمرير الخيار `--runtime`، وفي هذه الحالة تنطبق الإعدادات فقط حتى إعادة التشغيل التالية. يتبع بناء جملة تعيين الخاصية عن كثب بناء جملة التعيينات في ملفات الوحدة.
مثال: `systemctl set-property foobar.service CPUWeight=200`
إذا بدت الوحدة المحددة غير نشطة، فسيتم تخزين التغييرات فقط على القرص كما هو موضح سابقًا، وبالتالي ستكون فعالة عند بدء الوحدة.
لاحظ أن هذا الأمر يسمح بتغيير خصائص متعددة في وقت واحد، وهو ما يفضل على تعيينها بشكل فردي.
مثال: systemctl set-property foobar.service CPUWeight=200 MemoryMax=2G IPAccounting=yes
كما هو الحال مع إعدادات ملف الوحدة، فإن تعيين إعداد فارغ عادةً ما يعيد الخاصية إلى قيمها الافتراضية.
مثال: systemctl set-property avahi-daemon.service IPAddressDeny=
تمت إضافته في الإصدار 206.
bind UNIT PATH [PATH]
يربط ملفًا أو دليلًا من المضيف في مساحة التركيب الخاصة بالوحدة المحددة.
الحجة الأولى هي ملف أو دليل المصدر الموجود على المضيف، والحجة الثانية هي
مسار الوجهة في مساحة تركيب الوحدة. عند حذف الحجة الثانية، يكون مسار الوجهة في مساحة تركيب الوحدة هو نفسه مسار المصدر على
المضيف. عند دمجه مع الخيار --read-only، يتم إنشاء ربط قراءة فقط. عند دمجه مع الخيار --mkdir، يتم أولاً إنشاء مسار الوجهة قبل تطبيق الربط.
لاحظ أن هذا الخيار مدعوم حاليًا فقط للوحدات التي تعمل داخل مساحة تركيب
(على سبيل المثال: باستخدام RootImage=, PrivateMounts=, إلخ.). يدعم هذا الأمر ربط الدلائل والملفات العادية وعقد الأجهزة وعقد مقبس AF_UNIX، بالإضافة إلى FIFO. الربط مؤقت، ويتم إلغاؤه بمجرد انتهاء عملية الوحدة الحالية. لاحظ أن مساحة الاسم المذكورة هنا، حيث سيتم إضافة الربط إليها، هي مساحة الاسم التي تعمل فيها عملية الخدمة الرئيسية. تعمل العمليات الأخرى (تلك التي يتم تنفيذها بواسطة ExecReload=, ExecStartPre=, إلخ.) في مساحات أسماء منفصلة.
إذا كان مدعومًا بواسطة النواة، فسيتم استبدال أي تركيب سابق على الهدف المحدد بالتركيب الجديد. إذا لم يتم دعمه، فسيتم تركيب أي تركيب سابق، ولكنه سيظل مثبتًا وغير قابل للوصول إليه.
تمت إضافته في الإصدار 248.
mount-image UNIT IMAGE [PATH [PARTITION_NAME:MOUNT_OPTIONS]]
يركب صورة من المضيف في مساحة تركيب الوحدة المحددة. الحجة الأولى هي صورة المصدر الموجودة على المضيف، والحجة الثانية هي دليل الوجهة
في مساحة تركيب الوحدة (أي داخل RootImage=/RootDirectory=). الحجة التالية، إن وجدت، يتم تفسيرها على أنها مجموعة مفصولة بنقطتين من اسم القسم وقائمة مفصولة بفواصل من خيارات التركيب لهذا القسم. التنسيق هو نفسه تنسيق
إعداد MountImages= في الخدمة. عند دمجه مع الخيار --read-only، يتم إنشاء تركيب للقراءة فقط. عند دمجه مع الخيار --mkdir، يتم أولاً إنشاء مسار الوجهة قبل تطبيق التركيب.
لاحظ أن هذا الخيار مدعوم حاليًا فقط للوحدات التي تعمل داخل مساحة تركيب
(أي باستخدام RootImage=, PrivateMounts=, إلخ.). لاحظ أن مساحة الاسم المذكورة هنا، حيث سيتم إضافة تركيب الصورة إليها، هي مساحة الاسم التي تعمل فيها عملية الخدمة الرئيسية. لاحظ أن مساحة الاسم المذكورة هنا، حيث سيتم إضافة الربط إليها، هي مساحة الاسم التي تعمل فيها عملية الخدمة الرئيسية. تعمل العمليات الأخرى (تلك التي يتم تنفيذها بواسطة ExecReload=, ExecStartPre=, إلخ.) في مساحات أسماء منفصلة.
إذا كان مدعومًا من قبل النواة، فسيتم استبدال أي تركيب سابق على الهدف المحدد بالتركيب الجديد. إذا لم يكن مدعومًا، فسيتم تركيب أي تركيب سابق فوقه، ولكنه سيظل مثبتًا وغير قابل للوصول إليه.
مثال:
systemctl mount-image foo.service /tmp/img.raw /var/lib/image root:ro,nosuid
systemctl mount-image --mkdir bar.service /tmp/img.raw /var/lib/baz/img
تمت إضافته في الإصدار 248.
service-log-level SERVICE [LEVEL]
إذا لم يتم تقديم الوسيطة LEVEL، فسيتم طباعة مستوى التسجيل الحالي كما تم الإبلاغ عنه بواسطة الخدمة SERVICE.
إذا تم توفير الوسيطة الاختيارية LEVEL، فسيتم تغيير مستوى التسجيل الحالي للخدمة إلى LEVEL. يجب أن يكون مستوى التسجيل مستوى تسجيل syslog نموذجي، أي قيمة في النطاق 0...7 أو إحدى السلاسل emerg، و alert، و crit، و err، و warning، و notice، و info، و debug؛ راجع syslog(3) للحصول على التفاصيل.
يجب أن تمتلك الخدمة خاصية BusName=destination المناسبة وأن تنفذ واجهة org.freedesktop.LogControl1(5) العامة. (سيستخدم systemctl بروتوكول D-Bus العام للوصول إلى واجهة org.freedesktop.LogControl1.LogLevel لاسم D-Bus الوجهة.)
تمت إضافته في الإصدار 247.
service-log-target SERVICE [TARGET]
إذا لم يتم تقديم الوسيطة TARGET، فسيتم طباعة الهدف الحالي للتسجيل كما تم الإبلاغ عنه بواسطة الخدمة SERVICE.
إذا تم توفير الوسيطة الاختيارية TARGET، فسيتم تغيير الهدف الحالي للتسجيل للخدمة إلى TARGET. يجب أن يكون هدف التسجيل إحدى السلاسل console (لإخراج التسجيل إلى تدفق الإخراج القياسي للخدمة)، و kmsg (لإخراج التسجيل إلى مخزن سجلات النواة)، و journal (لإخراج التسجيل إلى systemd-journald.service(8) باستخدام بروتوكول السجل الأصلي)، و syslog (لإخراج التسجيل إلى مقبس syslog الكلاسيكي /dev/log)، و null (لعدم وجود إخراج سجل على الإطلاق) أو auto (لاختيار يتم تحديده تلقائيًا، وعادة ما يكون مكافئًا لـ console إذا تم استدعاء الخدمة بشكل تفاعلي، و journal أو syslog بخلاف ذلك).
بالنسبة لمعظم الخدمات، لا تعتبر مجموعة صغيرة فقط من أهداف التسجيل منطقية. على وجه الخصوص، يجب أن تنفذ معظم "الخدمات العادية" فقط console، و journal، و null. أي شيء آخر مناسب فقط للخدمات منخفضة المستوى والتي تكون نشطة في وقت مبكر جدًا من عملية الإقلاع قبل إنشاء التسجيل المناسب.
يجب أن تمتلك الخدمة خاصية BusName=destination المناسبة وأن تنفذ واجهة org.freedesktop.LogControl1(5) العامة. (سيستخدم systemctl بروتوكول D-Bus العام للوصول إلى واجهة org.freedesktop.LogControl1.LogLevel لاسم D-Bus الوجهة.)
تمت إضافته في الإصدار 247.
reset-failed [PATTERN...]
إعادة تعيين حالة "فشل" الوحدات المحددة، أو إذا لم يتم تمرير اسم وحدة، فقم بإعادة تعيين حالة جميع الوحدات. عندما تفشل وحدة ما بطريقة ما (أي، تنتهي العملية برمز خطأ غير صفري، أو تنتهي بشكل غير طبيعي أو تتجاوز المهلة)، فسيتم إدخالها تلقائيًا في حالة "فشل" وسيتم تسجيل رمز الخروج والحالة الخاص بها للتحقق منها بواسطة المسؤول حتى يتم إيقاف الخدمة/إعادة تشغيلها أو إعادة تعيينها باستخدام هذا الأمر.
بالإضافة إلى إعادة تعيين حالة "فشل" للوحدة، فإنه يعيد أيضًا تعيين خصائص أخرى خاصة بالوحدة: يتم إعادة تعيين عداد معدل بدء جميع أنواع الوحدات إلى صفر، وكذلك يتم إعادة تعيين عداد إعادة التشغيل لوحدات الخدمة. لذلك، إذا تم الوصول إلى حد بدء الوحدة (كما هو مُكوَّن باستخدام StartLimitIntervalSec=/StartLimitBurst=) وترفض الوحدة البدء مرة أخرى، فاستخدم هذا الأمر لجعلها قابلة للبدء مرة أخرى.
whoami [PID...]
يعرض الوحدات التي تنتمي إليها العمليات المشار إليها بمعرفات العمليات (PID) المعطاة (وحدة واحدة لكل سطر). إذا لم يتم تحديد أي PID، فإنه يعرض الوحدة التي يتم تنفيذ الأمر systemctl فيها.
تمت إضافته في الإصدار 254.
أوامر ملفات الوحدة
list-unit-files [PATTERN...]
يعرض ملفات الوحدة المثبتة على النظام، بالإضافة إلى حالتها من حيث التفعيل (كما يبلغ عنها الأمر is-enabled). إذا تم تحديد نمط واحد أو أكثر، فسيتم عرض ملفات الوحدة فقط التي يتطابق اسمها مع أحد هذه الأنماط (لا يتم دعم الأنماط التي تطابق مسارات نظام الملفات لملفات الوحدة).
على عكس الأمر list-units، سيعرض هذا الأمر وحدات القوالب بالإضافة إلى الوحدات التي تم إنشاؤها بشكل صريح.
تمت إضافته في الإصدار 233.
enable UNIT..., enable PATH...
يقوم بتفعيل وحدة أو أكثر أو مثيلات وحدة. سيؤدي ذلك إلى إنشاء مجموعة من الروابط الرمزية، كما هو موضح في أقسام [Install] في ملفات الوحدة المحددة. بعد إنشاء الروابط الرمزية، يتم إعادة تحميل تكوين مدير النظام (بطريقة مماثلة للأمر daemon-reload)، وذلك لضمان أخذ التغييرات في الاعتبار على الفور. لاحظ أن هذا لا يؤدي إلى بدء تشغيل أي من الوحدات التي يتم تفعيلها. إذا كان هذا هو المطلوب، فقم بدمج هذا الأمر مع الخيار --now، أو قم بتشغيل الأمر start مع الوسائط المناسبة لاحقًا. لاحظ أنه في حالة تفعيل مثيل الوحدة (أي تفعيل الوحدات التي تكون على شكل _)، يتم إنشاء روابط رمزية بنفس أسماء المثيلات في دليل تكوين الوحدة، ولكنها تشير إلى ملف الوحدة القالب الوحيد الذي يتم إنشاؤها منه.
يتوقع هذا الأمر إما أسماء وحدات صالحة (في هذه الحالة، يتم البحث تلقائيًا عن ملفات الوحدة ذات الأسماء المناسبة في أدلة ملفات الوحدة المختلفة)، أو مسارات مطلقة لملفات الوحدة (في هذه الحالة، تتم قراءة هذه الملفات مباشرةً). إذا تم تحديد ملف وحدة خارج أدلة ملفات الوحدة المعتادة، يتم إنشاء رابط رمزي إضافي، يربطها بدليل تكوين الوحدة، وبالتالي يضمن العثور عليها عند طلبها بواسطة أوامر مثل الأمر start. يجب أن يكون نظام الملفات الذي توجد فيه ملفات الوحدة المرتبطة متاحًا عند بدء تشغيل systemd (على سبيل المثال، لا يُسمح بأي شيء أسفل /home/ أو /var/، إلا إذا كانت هذه الدلائل موجودة على نظام الملفات الجذر).
سيعرض هذا الأمر عمليات نظام الملفات التي يتم تنفيذها. يمكن إلغاء هذا الإخراج عن طريق تمرير الخيار --quiet.
لاحظ أن هذا الإجراء ينشئ فقط الروابط الرمزية المقترحة في قسم [Install] في ملفات الوحدة. على الرغم من أن هذا الأمر هو الطريقة الموصى بها لمعالجة دليل تكوين الوحدة، إلا أن المسؤول حر في إجراء تغييرات إضافية يدويًا عن طريق وضع أو إزالة الروابط الرمزية أسفل هذا الدليل. هذا مفيد بشكل خاص لإنشاء تكوينات تختلف عن التكوين الافتراضي المقترح. في هذه الحالة، يجب على المسؤول التأكد من استدعاء الأمر daemon-reload يدويًا حسب الضرورة، وذلك لضمان أخذ التغييرات في الاعتبار.
عند استخدام هذه العملية على الوحدات التي لا تحتوي على معلومات تثبيت، يتم عرض تحذير بشأن ذلك.
يمكن استخدام --no-warn لقمع التحذير.
يجب عدم الخلط بين تمكين الوحدات وبدء (تفعيل) الوحدات، كما هو الحال في الأمر start. إن تمكين وبدء الوحدات أمران مستقلان: يمكن تمكين الوحدات دون بدء تشغيلها، ويمكن بدء تشغيلها دون تمكينها. ببساطة، يقوم التمكين بتوصيل الوحدة في أماكن مقترحة مختلفة (على سبيل المثال، بحيث يتم بدء تشغيل الوحدة تلقائيًا عند إعادة التشغيل أو عند توصيل نوع معين من الأجهزة). يقوم البدء الفعلي بتشغيل عملية الخادم (في حالة وحدات الخدمة)، أو بربط المقبس (في حالة وحدات المقبس)، وهكذا.
اعتمادًا على ما إذا تم تحديد --system أو --user أو --runtime أو --global، فسيتم تمكين الوحدة للنظام بأكمله، أو للمستخدم الذي قام بتشغيل الأمر فقط، أو لهذا التشغيل الحالي للنظام، أو لجميع عمليات تسجيل الدخول المستقبلية لجميع المستخدمين. لاحظ أنه في الحالة الأخيرة، لا يتم إعادة تحميل تكوين خادم systemd.
لا يتم دعم استخدام الأمر enable على الوحدات المقنعة، ويؤدي ذلك إلى حدوث خطأ.
`disable UNIT...`
يقوم بتعطيل وحدة أو أكثر. يزيل هذا الأمر جميع الروابط الرمزية للملفات الخاصة بالوحدات المحددة من دليل تكوين الوحدة، وبالتالي يعكس أي تغييرات تم إجراؤها بواسطة enable أو link. لاحظ أن هذا يزيل جميع الروابط الرمزية للملفات المطابقة، بما في ذلك الروابط الرمزية التي تم إنشاؤها يدويًا، وليس فقط تلك التي تم إنشاؤها بالفعل بواسطة enable أو link. لاحظ أنه في حين أن disable يعكس تأثير enable، فإن الأمرين ليسا متماثلين تمامًا، حيث قد يزيل disable المزيد من الروابط الرمزية مما أنشأه استدعاء enable السابق لنفس الوحدة.
يتوقع هذا الأمر أسماء وحدات صالحة فقط، ولا يقبل مسارات إلى ملفات الوحدات.
بالإضافة إلى الوحدات المحددة كمعاملات، يتم تعطيل جميع الوحدات المدرجة في الإعداد Also= الموجود في قسم [Install] في أي من ملفات الوحدات التي يتم العمل عليها.
يقوم هذا الأمر بإعادة تحميل تكوين مدير النظام ضمنيًا بعد اكتمال العملية. لاحظ أن هذا الأمر لا يقوم بإيقاف الوحدات التي يتم تعطيلها ضمنيًا. إذا كان هذا مطلوبًا، فإما قم بدمج هذا الأمر مع الخيار --now، أو قم بتشغيل الأمر stop مع المعلمات المناسبة لاحقًا.
سيقوم هذا الأمر بطباعة معلومات حول عمليات نظام الملفات (إزالة الروابط الرمزية) التي يتم تنفيذها. يمكن قمع هذا الإخراج عن طريق تمرير --quiet.
إذا تم تعطيل وحدة، ولكن لا تزال وحدات التشغيل الخاصة بها نشطة، فسيتم عرض تحذير يحتوي على أسماء وحدات التشغيل. يمكن استخدام --no-warn لقمع هذا التحذير.
عند استخدام هذا الأمر مع --user، قد تظل الوحدات التي يتم العمل عليها ممكنة في النطاق العام، وبالتالي يتم بدء تشغيلها تلقائيًا حتى بعد تعطيل ناجح في نطاق المستخدم. في هذه الحالة، يتم عرض تحذير بشأنه، ويمكن قمعه باستخدام --no-warn.
يستجيب هذا الأمر لـ --system و --user و --runtime و --global و --no-warn بطريقة مماثلة لـ enable.
أُضيف في الإصدار 238.
reenable UNIT...
أعد تفعيل وحدة أو أكثر، كما هو محدد في سطر الأوامر. هذا عبارة عن مزيج من disable و enable وهو مفيد لإعادة تعيين الروابط الرمزية التي تم تفعيل ملف الوحدة بها إلى الإعدادات الافتراضية المكوّنة في قسم [Install] الخاص بها. يتوقع هذا الأمر اسم وحدة فقط، ولا يقبل مسارات لملفات الوحدات.
يعيد هذا الأمر ضمنيًا تحميل تكوين مدير النظام بعد إكمال العملية. لاحظ أن هذا الأمر لا يعيد تشغيل الوحدات التي يتم تعطيلها ضمنيًا. إذا كان هذا مطلوبًا، فإما أن تجمع هذا الأمر مع الخيار --now، أو قم بتشغيل الأمر try-restart مع الوسائط المناسبة لاحقًا.
أُضيف في الإصدار 238.
preset UNIT...
أعد تعيين حالة التفعيل/التعطيل لملف وحدة واحد أو أكثر، كما هو محدد في سطر الأوامر، إلى الإعدادات الافتراضية المكوّنة في ملفات سياسة الإعداد المسبق. له نفس تأثير disable أو enable، اعتمادًا على كيفية إدراج الوحدة في ملفات الإعداد المسبق.
استخدم --preset-mode= للتحكم فيما إذا كان يجب تفعيل الوحدات وتعطيلها، أو تفعيلها فقط، أو تعطيلها فقط.
إذا كانت الوحدة لا تحمل أي معلومات تثبيت، فسيتم تجاهلها بصمت بواسطة هذا الأمر. يجب أن يكون UNIT هو اسم الوحدة الفعلي، ويتم تجاهل أي أسماء مستعارة (روابط رمزية إلى وحدة أخرى) بصمت.
لمزيد من المعلومات حول تنسيق سياسة الإعداد المسبق، راجع systemd.preset(5).
أُضيف في الإصدار 238.
preset-all
يعيد تعيين جميع ملفات الوحدات المثبتة إلى الإعدادات الافتراضية المكوّنة في ملف سياسة الإعداد المسبق (انظر أعلاه).
استخدم --preset-mode= للتحكم فيما إذا كان يجب تفعيل الوحدات وتعطيلها، أو تفعيلها فقط، أو تعطيلها فقط.
أُضيف في الإصدار 215.
is-enabled UNIT...
يتحقق مما إذا كانت أي من ملفات الوحدات المحددة مفعلة (كما هو الحال مع enable). يُرجع رمز خروج بقيمة 0 إذا كانت واحدة على الأقل مفعلة، وغير صفر بخلاف ذلك. يطبع الحالة الحالية للتفعيل (انظر الجدول). لقمع هذا الإخراج، استخدم --quiet. لعرض أهداف التثبيت، استخدم --full.
الجدول 3. إخراج is-enabled
┌───────────────────┬────────────────────────────┬───────────┐
│ الاسم │ الوصف │ رمز الخروج │
├───────────────────┼────────────────────────────┼───────────┤
│ "enabled" │ مفعل عبر .wants/، │ │
├───────────────────┤ .requires/ أو Alias= │ │
│ "enabled-runtime" │ روابط رمزية (بشكل دائم في │ 0 │
│ │ /etc/systemd/system/، أو │ │
│ │ بشكل مؤقت في │ │
│ │ /run/systemd/system/). │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "linked" │ تم إتاحته من خلال رابط رمزي │ │
├───────────────────┤ واحد أو أكثر إلى ملف الوحدة │ │
│ "linked-runtime" │ (بشكل دائم في │ │
│ │ /etc/systemd/system/ أو │ \> 0 │
│ │ بشكل مؤقت في │ │
│ │ /run/systemd/systemd/). │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "alias" │ الاسم هو اسم مستعار │ 0 │
│ │ (رابط رمزي إلى وحدة أخرى). │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "masked" │ معطل بالكامل، بحيث تفشل أي │ │
├───────────────────┤ عملية بدء تشغيل عليه │ │
│ "masked-runtime" │ (بشكل دائم في │ \> 0 │
│ │ /etc/systemd/system/ أو │ │
│ │ بشكل مؤقت في │ │
│ │ /run/systemd/systemd/). │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "static" │ ملف الوحدة ليس مفعلًا، وليس │ 0 │
│ │ لديه أي أحكام للتفعيل في │ │
│ │ قسم [Install] في ملف الوحدة. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "indirect" │ ملف الوحدة نفسه ليس مفعلًا، │ 0 │
│ │ ولكنه يحتوي على إعداد Also= │ │
│ │ غير فارغ في قسم [Install] في │ │
│ │ ملف الوحدة، يسرد وحدات أخرى │ │
│ │ قد تكون مفعلة، أو لديه اسم │ │
│ │ مستعار باسم مختلف عبر رابط │ │
│ │ رمزي غير محدد في Also=. بالنسبة │ │
│ │ لوحدات القوالب، يكون المثيل │ │
│ │ مختلفًا عن المثيل المحدد في │ │
│ │ DefaultInstance= مفعلًا. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "disabled" │ ملف الوحدة ليس مفعلًا، ولكنه │ \> 0 │
│ │ يحتوي على قسم [Install] مع │ │
│ │ تعليمات التثبيت. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "generated" │ تم إنشاء ملف الوحدة │ 0 │
│ │ ديناميكيًا بواسطة أداة │ │
│ │ إنشاء. انظر `systemd.generator(7)`. │ │
│ │ قد لا تكون ملفات الوحدات │ │
│ │ التي تم إنشاؤها مفعلة، ولكنها │ │
│ │ مفعلة ضمنيًا بواسطة أداة │ │
│ │ الإنشاء الخاصة بها. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "transient" │ تم إنشاء ملف الوحدة │ 0 │
│ │ ديناميكيًا باستخدام واجهة برمجة │ │
│ │ التطبيقات لوقت التشغيل. قد لا │ │
│ │ تكون الوحدات المؤقتة مفعلة. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "bad" │ ملف الوحدة غير صالح أو حدث │ \> 0 │
│ │ خطأ آخر. لاحظ أن `is-enabled` │ │
│ │ لن تُرجع هذه الحالة بالفعل، │ │
│ │ ولكن ستطبع رسالة خطأ بدلاً من │ │
│ │ ذلك. ومع ذلك، قد تُظهر قائمة │ │
│ │ ملفات الوحدات التي تطبعها │ │
│ │ `list-unit-files` ذلك. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "not-found" │ ملف الوحدة غير موجود. │ 4 │
└───────────────────┴────────────────────────────┴───────────┘
أُضيف في الإصدار 238.
mask UNIT...
إخفاء وحدة أو أكثر، كما هو محدد في سطر الأوامر. سيؤدي هذا إلى ربط ملفات الوحدات هذه بـ /dev/null، مما يجعل من المستحيل بدء تشغيلها. هذا إصدار أقوى من "disable"، لأنه يمنع جميع أنواع تفعيل الوحدة، بما في ذلك التمكين والتفعيل اليدوي. استخدم هذا الخيار بحذر. يمكن استخدام الخيار --runtime لتحديد أنه سيتم الإخفاء مؤقتًا فقط حتى إعادة تشغيل النظام التالية. يمكن استخدام الخيار --now لضمان إيقاف الوحدات أيضًا. يتوقع هذا الأمر أسماء وحدات صالحة فقط، ولا يقبل مسارات ملفات الوحدات.
لاحظ أن هذا سيؤدي إلى إنشاء رابط رمزي تحت اسم الوحدة في /etc/systemd/system/ (في حالة عدم تحديد --runtime) أو /run/systemd/system/ (في حالة تحديد --runtime). إذا كان هناك ملف وحدة مطابق موجود بالفعل في هذه الدلائل، فسيفشل هذا الإجراء. هذا يعني أن هذا الإجراء مفيد بشكل أساسي لإخفاء الوحدات التي يتم شحنها بواسطة البائع (حيث يتم شحنها في /usr/lib/systemd/system/ وليس في الدلائل المذكورة أعلاه)، ولكنه عادةً لا يعمل للوحدات التي تم إنشاؤها محليًا (حيث يتم وضعها عادةً في الدلائل المذكورة أعلاه). تنطبق قيود مماثلة على وضع --user، وفي هذه الحالة تكون الدلائل موجودة أسفل دليل المستخدم الرئيسي.
إذا تم إخفاء وحدة ولكن لا تزال وحداتها المشغلة نشطة، فستظهر رسالة تحذير تحتوي على أسماء الوحدات المشغلة. يمكن استخدام --no-warn لقمع التحذير.
أُضيف في الإصدار 238.
unmask UNIT...
إلغاء إخفاء ملف وحدة أو أكثر، كما هو محدد في سطر الأوامر. سيعكس هذا تأثير الأمر "mask". يتوقع هذا الأمر أسماء وحدات صالحة فقط، ولا يقبل مسارات ملفات الوحدات.
أُضيف في الإصدار 238.
link PATH...
ربط ملف وحدة غير موجود في مسار البحث عن ملفات الوحدة بمسار البحث عن ملفات الوحدة. يتوقع هذا الأمر مسارًا مطلقًا لملف وحدة. يمكن التراجع عن تأثير هذا الأمر باستخدام الأمر "disable". تأثير هذا الأمر هو جعل ملف وحدة متاحًا لأوامر مثل "start"، حتى لو لم يتم تثبيته مباشرةً في مسار البحث عن ملفات الوحدة. يجب أن يكون نظام الملفات الذي توجد فيه ملفات الوحدة المرتبطة قابلاً للوصول إليه عند بدء تشغيل systemd (على سبيل المثال، لا يُسمح بأي شيء أسفل /home/ أو /var/، ما لم تكن هذه الدلائل موجودة على نظام الملفات الجذر).
أُضيفت في الإصدار 233.
revert UNIT...
يسترجع واحدًا أو أكثر من ملفات الوحدة إلى إصداراتها الأصلية. يزيل هذا الأمر ملفات التكوين الإضافية التي تعدل الوحدات المحددة، بالإضافة إلى أي ملف وحدة تم تكوينه بواسطة المستخدم والذي يحل محل ملف وحدة أصلي مقدم من البائع. على وجه التحديد، بالنسبة لوحدة تسمى "foo.service"، تتم إزالة الدلائل المطابقة "foo.service.d/" مع جميع الملفات الموجودة بداخلها، سواء في الدلائل الخاصة بالتكوين الدائم أو المؤقت (أي، أسفل /etc/systemd/system و /run/systemd/system). إذا كان لملف الوحدة إصدار أصلي مقدم من البائع (أي، ملف وحدة موجود أسفل /usr/)، فسيتم أيضًا إزالة أي ملف وحدة مطابق موجود في الدلائل الخاصة بالتكوين الدائم أو المؤقت والذي يحل محله. لاحظ أنه إذا لم يكن لملف الوحدة إصدار أصلي مقدم من البائع (أي، موجود فقط أسفل /etc/systemd/system أو /run/systemd/system، ولكن ليس في ملف وحدة موجود أسفل /usr/)، فلن تتم إزالته. أيضًا، إذا كانت الوحدة مخفية، فسيتم إلغاء إخفائها.
بشكل فعال، يمكن استخدام هذا الأمر للتراجع عن جميع التغييرات التي تم إجراؤها باستخدام systemctl edit و systemctl set-property و systemctl mask، وإعادة ملف الوحدة الأصلي وإعداداته إلى وضعها الأصلي.
أُضيفت في الإصدار 230.
add-wants TARGET UNIT..., add-requires TARGET UNIT...
يضيف تبعيات "Wants=" أو "Requires="، على التوالي، إلى الهدف (TARGET) المحدد لواحدة أو أكثر من الوحدات.
يستجيب هذا الأمر لخيارات --system و --user و --runtime و --global بطريقة مماثلة لـ enable.
أُضيفت في الإصدار 217.
edit UNIT...
يعدل أو يستبدل مقتطفًا إضافيًا أو ملف الوحدة الرئيسي، لتوسيع أو تجاوز تعريف الوحدة المحددة.
اعتمادًا على ما إذا تم تحديد --system (افتراضيًا)، أو --user، أو --global، فسيعمل هذا الأمر على ملفات وحدة النظام، أو ملفات الوحدة الخاصة بالمستخدم الذي قام بتشغيله، أو ملفات الوحدة المشتركة بين جميع المستخدمين.
يتم استدعاء المحرر (انظر قسم "البيئة" أدناه) على ملفات مؤقتة سيتم كتابتها إلى الموقع الفعلي إذا خرج المحرر بنجاح. بعد الانتهاء من التحرير، يتم إعادة تحميل التكوين، وهو ما يعادل الأمر systemctl daemon-reload --system أو systemctl daemon-reload --user. بالنسبة لخيار --global، لا يتم إجراء إعادة التحميل، وستدخل التعديلات حيز التنفيذ فقط لتسجيلات الدخول اللاحقة (أو بعد طلب إعادة التحميل بطريقة أخرى).
إذا تم تحديد --full، فسيتم إنشاء أو تعديل بديل لملف الوحدة الرئيسي. بخلاف ذلك، سيتم إنشاء أو تعديل ملف إضافي.
إذا تم تحديد --drop-in=، فسيتم استخدام اسم ملف الإضافة المحدد بدلاً من override.conf الافتراضي.
يجب أن تكون الوحدة موجودة، أي يجب أن يكون ملف الوحدة الرئيسي الخاص بها موجودًا. إذا تم تحديد --force، فسيتم تجاهل هذا الشرط، ويمكن إنشاء وحدة جديدة (باستخدام --full)، أو يمكن إنشاء إضافة لوحدة غير موجودة.
إذا تم تحديد الخيار --runtime، فسيتم إجراء التغييرات بشكل مؤقت في /run/ وسيتم فقدانها عند إعادة التشغيل التالية.
إذا تم تحديد الخيار --stdin، فسيتم قراءة المحتوى الجديد من الإدخال القياسي. في هذا الوضع، يتم تجاهل المحتوى القديم للملف.
إذا كان الملف المؤقت فارغًا عند الخروج، فسيتم إلغاء تعديل الوحدة ذات الصلة.
لاحظ أنه لا يمكن استخدام هذا الأمر لتحرير الوحدات عن بُعد، ولا يمكنك تحرير الوحدات الموجودة في /etc/ بشكل مؤقت، لأنها لها الأسبقية على /run/.
تمت إضافته في الإصدار 218.
^ et-default
إرجاع الهدف الافتراضي الذي سيتم تشغيله. يقوم هذا بإرجاع اسم وحدة الهدف الافتراضي الذي يشير إليه default.target.
تمت إضافته في الإصدار 205.
^ et-default TARGET
تعيين الهدف الافتراضي الذي سيتم تشغيله. يقوم هذا بتعيين (إنشاء ارتباط رمزي) الاسم المستعار default.target إلى وحدة الهدف المحددة.
تمت إضافته في الإصدار 205.
أوامر الماكينة
^ ist-machines [PATTERN...]
عرض المضيف وجميع الحاويات المحلية قيد التشغيل مع حالتها. إذا تم تحديد نمط واحد أو أكثر، فسيتم عرض الحاويات التي تطابق أحد هذه الأنماط فقط.
تمت إضافته في الإصدار 212.
أوامر المهام
^ ist-jobs [PATTERN...]
عرض المهام التي قيد التقدم. إذا تم تحديد نمط واحد أو أكثر، فسيتم عرض المهام الخاصة بالوحدات التي تطابق أحد هذه الأنماط فقط.
عند الجمع مع --after أو --before، تتم إضافة معلومات حول المهام الأخرى التي تنتظرها كل مهمة، والمهام الأخرى التي تنتظرها، راجع ما سبق.
تمت إضافته في الإصدار 233.
^ ancel [JOB...]
إلغاء مهمة واحدة أو أكثر محددة في سطر الأوامر بمعرفات المهام الرقمية الخاصة بها. إذا لم يتم تحديد أي معرف مهمة، فسيتم إلغاء جميع المهام المعلقة.
تمت إضافته في الإصدار 233.
أوامر البيئة
يدعم systemd كتلة بيئة يتم تمريرها إلى العمليات التي يشغلها المدير. يمكن أن تحتوي أسماء المتغيرات على أحرف ASCII وأرقام وشرطة سفلية. لا يمكن أن تكون أسماء المتغيرات فارغة أو تبدأ برقم. في قيم المتغيرات، يُسمح بمعظم الأحرف، ولكن يجب أن يكون التسلسل بأكمله صالحًا بتنسيق UTF-8. (لاحظ أن الأحرف الخاصة مثل السطر الجديد (NL) أو علامة التبويب (TAB) أو حرف الهروب (ESC) هي أحرف ASCII صالحة وبالتالي فهي صالحة بتنسيق UTF-8). يقتصر الطول الإجمالي لكتلة البيئة على قيمة _SC_ARG_MAX المعرّفة بواسطة sysconf(3).
^ how-environment
عرض كتلة بيئة مدير systemd. هذه هي كتلة البيئة التي يتم تمريرها إلى جميع العمليات التي يشغلها المدير. سيتم عرض كتلة البيئة بتنسيق بسيط مناسب للاستخدام في معظم الأصداف. إذا لم تكن هناك أحرف خاصة أو مسافات بيضاء في قيم المتغيرات، فلن يتم إجراء أي هروب، وستكون التعيينات على شكل "VARIABLE=value". إذا كانت هناك مسافات بيضاء أو أحرف لها معنى خاص في الصدفة، فسيتم استخدام الهروب باستخدام علامة اقتباس مفردة وعلامة الدولار، وستكون التعيينات على شكل "VARIABLE=$'value'". هذا التنسيق مدعوم من bash(1)، و zsh(1)، و ksh(1)، و busybox({filename}../../busybox)(1)'s ash(1)، ولكن ليس dash(1) أو fish(1).
لاحظ أن هذا يعرض كتلة البيئة الفعالة، أي مزيج متغيرات البيئة التي تم تكوينها عبر ملفات التكوين، ومولدات البيئة، وعبر IPC (أي عبر الأمر set-environment الموصوف أدناه). في اللحظة التي يتم فيها إنشاء عملية فرعية، سيتم دمج هذه الكتلة المجمعة من البيئة مع متغيرات البيئة الخاصة بالوحدة، والتي لا تظهر في هذا الأمر.
set-environment VARIABLE=VALUE...
يقوم بتعيين متغير بيئة واحد أو أكثر لمدير الخدمة، كما هو محدد في سطر الأوامر. سيفشل هذا الأمر إذا كانت أسماء المتغيرات والقيم لا تلتزم بالقواعد المذكورة أعلاه.
لاحظ أن هذا يعمل على كتلة بيئة منفصلة عن كتلة البيئة التي تم تكوينها من تكوين مدير الخدمة ومولدات البيئة. في كل مرة يتم فيها استدعاء عملية، يتم دمج الكتلتين (بالإضافة إلى أي متغيرات بيئة خاصة بالخدمة)، ثم يتم تمريرها إليها. سيعرض الأمر `show-environment` مزيج الكتلتين، كما هو موضح أعلاه.
تمت إضافته في الإصدار 233.
unset-environment VARIABLE...
يزيل متغير بيئة واحد أو أكثر لمدير النظام. إذا تم تحديد اسم متغير فقط، فسيتم إزالته بغض النظر عن قيمته. إذا تم تحديد متغير وقيمة، فسيتم إزالة المتغير فقط إذا كان له القيمة المحددة.
لاحظ أن هذا يعمل على كتلة بيئة منفصلة عن كتلة البيئة التي تم تكوينها من تكوين مدير الخدمة ومولدات البيئة. في كل مرة يتم فيها استدعاء عملية، يتم دمج الكتلتين (بالإضافة إلى أي متغيرات بيئة خاصة بالخدمة)، ثم يتم تمريرها إليها. سيعرض الأمر `show-environment` مزيج الكتلتين، كما هو موضح أعلاه. لاحظ أن هذا يعني أنه لا يمكن استخدام هذا الأمر لإلغاء تعيين متغيرات البيئة المعرفة في ملفات تكوين مدير الخدمة أو عبر المولدات.
تمت إضافته في الإصدار 233.
import-environment VARIABLE...
يقوم باستيراد جميع متغيرات البيئة المعينة على العميل إلى كتلة بيئة مدير النظام. إذا تم تمرير قائمة بأسماء متغيرات البيئة، فسيتم استيراد قيم جانب العميل إلى كتلة بيئة المدير. إذا كانت أي أسماء ليست أسماء متغيرات بيئة صالحة أو لها قيم غير صالحة وفقًا للقواعد الموصوفة أعلاه، فسيتم إظهار خطأ. إذا لم يتم تمرير أي وسائط، فسيتم استيراد كتلة البيئة الموروثة بأكملها بواسطة عملية `systemctl`. في هذا الوضع، سيتم تجاهل أي متغيرات بيئة موروثة غير صالحة بهدوء.
يُعد استيراد كتلة البيئة الموروثة بالكامل (عن طريق استدعاء هذا الأمر بدون أي وسائط) أمرًا قديمًا. سيقوم برنامج shell بتعيين العشرات من المتغيرات التي لا معنى لها إلا محليًا ومخصصة للعمليات التي هي من سلالة برنامج shell. مثل هذه المتغيرات في كتلة البيئة العامة مربكة للعمليات الأخرى.
تمت إضافته في الإصدار 209.
أوامر حالة المدير
daemon-reload
إعادة تحميل تكوين مدير النظام. سيؤدي هذا إلى إعادة تشغيل جميع المولدات (راجع `systemd.generator(7)`)، وإعادة تحميل جميع ملفات الوحدات، وإعادة إنشاء شجرة التبعية بأكملها. أثناء إعادة تحميل البرنامج، ستظل جميع المقابس التي يستمع إليها systemd نيابة عن تكوين المستخدم في متناول الجميع.
لا ينبغي الخلط بين هذا الأمر وأمر إعادة التحميل.
daemon-reexec
أعد تشغيل مدير النظام. سيؤدي هذا إلى تسلسل حالة المدير وإعادة تشغيل العملية وإعادة تسلسل الحالة مرة أخرى. هذا الأمر ليس له فائدة كبيرة باستثناء التصحيح وتحديثات الحزم. في بعض الأحيان، قد يكون مفيدًا كبديل قوي لأمر daemon-reload. أثناء إعادة تشغيل المدير، ستظل جميع المنافذ التي يستمع إليها نظام التشغيل نيابة عن تكوين المستخدم قابلة للوصول.
log-level [LEVEL]
إذا لم يتم توفير أي وسيطة، فسيتم طباعة المستوى الحالي لتسجيل الدخول للمدير. إذا تم توفير وسيطة اختيارية LEVEL، فسيتم تغيير المستوى الحالي لتسجيل الدخول للمدير إلى LEVEL (يستخدم نفس القيم الموجودة في --log-level=، كما هو موضح في systemd(1)).
تمت إضافته في الإصدار 244.
log-target [TARGET]
إذا لم يتم توفير أي وسيطة، فسيتم طباعة الهدف الحالي لتسجيل الدخول للمدير. إذا تم توفير وسيطة اختيارية TARGET، فسيتم تغيير الهدف الحالي لتسجيل الدخول للمدير إلى TARGET (يستخدم نفس القيم الموجودة في --log-target=، كما هو موضح في systemd(1)).
تمت إضافته في الإصدار 244.
service-watchdogs [yes|no]
إذا لم يتم توفير أي وسيطة، فسيتم طباعة الحالة الحالية لمراقبة وقت تشغيل الخدمة للمدير. إذا تم توفير وسيطة منطقية اختيارية، فسيتم تمكين أو تعطيل مراقبة وقت تشغيل الخدمة (WatchdogSec=) والإجراءات الطارئة (على سبيل المثال، OnFailure= أو StartLimitAction=) بشكل عام؛ انظر systemd.service(5). لا تتأثر المراقبة المادية (hardware watchdog) بهذا الإعداد.
تمت إضافته في الإصدار 244.
أوامر النظام
is-system-running
يتحقق مما إذا كان النظام يعمل. سيُرجع هذا نجاحًا (رمز الخروج 0) عندما يكون النظام قيد التشغيل بالكامل، وتحديدًا ليس في وضع بدء التشغيل أو الإيقاف أو الصيانة، ولا توجد خدمات فاشلة. يتم إرجاع فشل بخلاف ذلك (رمز الخروج غير صفري). بالإضافة إلى ذلك، تتم طباعة الحالة الحالية في سلسلة قصيرة إلى الإخراج القياسي، راجع الجدول أدناه. استخدم --quiet لإخفاء هذا الإخراج.
استخدم --wait للانتظار حتى اكتمال عملية التمهيد قبل طباعة الحالة الحالية وإرجاع حالة الخطأ المناسبة. إذا تم استخدام --wait، فلن يتم الإبلاغ عن الحالات initializing أو starting، وبدلاً من ذلك، سيحظر الأمر حتى يتم الوصول إلى حالة لاحقة (مثل running أو degraded).
الجدول 4. مخرجات is-system-running
┌──────────────┬────────────────────────────┬───────────┐
│ الاسم │ الوصف │ رمز الخروج │
├──────────────┼────────────────────────────┼───────────┤
│ initializing │ التمهيد المبكر، قبل │ \> 0 │
│ │ الوصول إلى basic.target أو │ │
│ │ الدخول في حالة الصيانة. │ │
├──────────────┼────────────────────────────┼───────────┤
│ starting │ التمهيد المتأخر، قبل أن تصبح │ \> 0 │
│ │ قائمة الانتظار في حالة خمول │ │
│ │ للمرة الأولى، أو الوصول إلى │ │
│ │ أحد أهداف الاستعادة. │ │
├──────────────┼────────────────────────────┼───────────┤
│ running │ النظام يعمل بالكامل. │ 0 │
│ │ │ │
├──────────────┼────────────────────────────┼───────────┤
│ degraded │ النظام يعمل ولكن وحدة أو أكثر │ \> 0 │
│ │ فشلت. │ │
├──────────────┼────────────────────────────┼───────────┤
│ maintenance │ هدف الاستعادة أو الطوارئ نشط. │ \> 0 │
├──────────────┼────────────────────────────┼───────────┤
│ stopping │ يقوم المدير بإيقاف التشغيل. │ \> 0 │
├──────────────┼────────────────────────────┼───────────┤
│ offline │ المدير لا يعمل. على وجه التحديد، │ \> 0 │
│ │ هذه هي الحالة التشغيلية إذا كان │ │
│ │ برنامج غير متوافق قيد التشغيل │ │
│ │ كمدير للنظام (PID 1). │ │
├──────────────┼────────────────────────────┼───────────┤
│ unknown │ لا يمكن تحديد الحالة التشغيلية، │ \> 0 │
│ │ بسبب نقص الموارد أو سبب آخر. │ │
└──────────────┴────────────────────────────┴───────────┘
أُضيفت في الإصدار 215.
default
ادخل في الوضع الافتراضي. هذا يعادل `systemctl isolate default.target`. هذه العملية
حاجبة افتراضيًا، استخدم `--no-block` لطلب سلوك غير متزامن.
rescue
ادخل في وضع الاستعادة. هذا يعادل `systemctl isolate rescue.target`. هذه العملية
حاجبة افتراضيًا، استخدم `--no-block` لطلب سلوك غير متزامن.
emergency
ادخل في وضع الطوارئ. هذا يعادل `systemctl isolate emergency.target`. هذه العملية
حاجبة افتراضيًا، استخدم `--no-block` لطلب سلوك غير متزامن.
halt
أوقف تشغيل النظام وأوقف تشغيله. هذا يعادل إلى حد كبير `systemctl start halt.target
--job-mode=replace-irreversibly --no-block`، ولكنه يعرض أيضًا رسالة تحذير لجميع المستخدمين.
هذا الأمر غير متزامن؛ سيعود بعد إدراج عملية الإيقاف في قائمة الانتظار، دون انتظار إكمالها.
لاحظ أن هذه العملية ستوقف ببساطة نواة نظام التشغيل بعد إيقاف التشغيل، مع ترك الأجهزة قيد التشغيل.
استخدم `systemctl poweroff` لإيقاف تشغيل النظام (انظر أدناه).
إذا تم دمجه مع `--force`، فسيتم تخطي إيقاف تشغيل جميع الخدمات قيد التشغيل، ومع ذلك، سيتم إنهاء جميع العمليات
وسيتم إلغاء تحميل جميع أنظمة الملفات أو تحميلها في وضع القراءة فقط، يليه مباشرةً إيقاف تشغيل النظام.
إذا تم تحديد `--force` مرتين، فسيتم تنفيذ العملية على الفور دون إنهاء أي عمليات أو إلغاء تحميل أي أنظمة ملفات.
قد يؤدي هذا إلى فقدان البيانات. لاحظ أنه عند تحديد `--force` مرتين، يتم تنفيذ عملية الإيقاف بواسطة `systemctl` نفسه،
ولا يتم الاتصال بمدير النظام. هذا يعني أنه يجب أن ينجح الأمر حتى في حالة تعطل مدير النظام.
إذا تم دمجه مع `--when=`، فسيتم جدولة الإيقاف بعد الطابع الزمني المحدد. و`--when=cancel` سيلغي الإيقاف.
poweroff
أوقف تشغيل النظام وإيقافه. هذا يعادل إلى حد كبير `systemctl start
poweroff.target --job-mode=replace-irreversibly --no-block`، ولكنه يعرض أيضًا رسالة تحذير لجميع المستخدمين.
هذا الأمر غير متزامن؛ سيعود بعد إدراج عملية إيقاف التشغيل في قائمة الانتظار، دون انتظار إكمالها.
يشرف هذا الأمر على الخيارات `--force` و`--when=` بطريقة مماثلة لـ `halt`.
reboot
أوقف تشغيل النظام وأعد تشغيله.
هذا الأمر يعادل إلى حد كبير `systemctl start reboot.target
--job-mode=replace-irreversibly --no-block`، ولكنه يعرض أيضًا رسالة تحذير لجميع المستخدمين.
هذا الأمر غير متزامن؛ سيعود بعد إدراج عملية إعادة التشغيل في قائمة الانتظار، دون انتظار إكمالها.
إذا تم إعطاء الخيار `--reboot-argument=`، فسيتم تمريره كوسيطة اختيارية إلى
استدعاء النظام [`reboot`](filename}reboot.md)(2).
يمكن استخدام الخيارات `--boot-loader-entry=` و`--boot-loader-menu=` و`--firmware-setup` لتحديد
ما يجب القيام به بعد إعادة التشغيل. راجع أوصاف هذه الخيارات للحصول على التفاصيل.
يشرف هذا الأمر على الخيارات `--force` و`--when=` بطريقة مماثلة لـ `halt`.
إذا تم تحميل نواة جديدة باستخدام kexec --load، فسيتم إجراء kexec بدلاً من إعادة التشغيل، ما لم يتم تعيين SYSTEMCTL_SKIP_AUTO_KEXEC=1. إذا تم إعداد نظام ملفات جذر جديد في /run/nextroot/، فسيتم إجراء "إعادة تشغيل ناعمة" بدلاً من إعادة التشغيل، ما لم يتم تعيين SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1.
تمت إضافته في الإصدار 246.
kexec
أوقف تشغيل النظام وأعد تشغيله عبر kexec. سيقوم هذا الأمر بتحميل نواة kexec إذا لم يتم تحميلها بالفعل أو سيفشل. يمكن تحميل النواة في وقت سابق بخطوة منفصلة، وهذا مفيد بشكل خاص إذا كانت هناك حاجة إلى initrd مخصص أو خيارات إضافية لسطر أوامر النواة. يمكن استخدام الخيار --force للمتابعة بدون نواة kexec، أي لإجراء إعادة تشغيل عادية. خطوة إعادة التشغيل النهائية تعادل systemctl start kexec.target --job-mode=replace-irreversibly --no-block.
لتحميل نواة، يتم إجراء تعداد وفقًا لمواصفات UAPI.1 Boot Loader Specification[1]، ويتم تحميل إدخال التمهيد الافتراضي. لكي تنجح هذه الخطوة، يجب أن يستخدم النظام UEFI ويجب تكوين إدخالات مُحمل التمهيد بشكل مناسب. يمكن استخدام bootctl list لسرد إدخالات التمهيد، راجع bootctl(1).
هذا الأمر غير متزامن؛ سيعود بعد وضع عملية إعادة التشغيل في قائمة الانتظار، دون انتظار إكمالها.
هذا الأمر يحترم --force و --when= على غرار halt.
إذا تم تحميل نواة جديدة باستخدام kexec --load، فسيتم إجراء kexec عند استدعاء reboot، ما لم يتم تعيين SYSTEMCTL_SKIP_AUTO_KEXEC=1.
soft-reboot
أوقف تشغيل وأعد تشغيل مساحة المستخدم. هذا يعادل systemctl start soft-reboot.target --job-mode=replace-irreversibly --no-block. هذا الأمر غير متزامن؛ سيعود بعد وضع عملية إعادة التشغيل في قائمة الانتظار، دون انتظار إكمالها.
هذا الأمر يحترم --force و --when= بطريقة مماثلة لـ halt.
تعيد هذه العملية تشغيل مساحة المستخدم فقط، مع ترك النواة قيد التشغيل. راجع systemd-softreboot.service(8) لمزيد من التفاصيل.
إذا تم إعداد نظام ملفات جذر جديد في /run/nextroot/، فسيتم إجراء "إعادة تشغيل ناعمة" عند استدعاء reboot، ما لم يتم تعيين SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1.
تمت إضافته في الإصدار 254.
exit [EXIT_CODE]
اطلب من مدير الخدمة إنهاء العمل. هذا مدعوم فقط لمديري الخدمات الخاصين بالمستخدم (أي بالاشتراك مع الخيار --user) أو في الحاويات، وهو ما يعادل poweroff بخلاف ذلك. هذا الأمر غير متزامن؛ سيعود بعد وضع عملية الإنهاء في قائمة الانتظار، دون انتظار إكمالها.
سينهي مدير الخدمة مع رمز الخروج المحدد، إذا تم تمرير EXIT_CODE.
تمت إضافته في الإصدار 227.
switch-root [ROOT [INIT]]
ينتقل إلى دليل جذر مختلف وينفذ عملية مدير نظام جديد تحته. هذا مخصص للاستخدام في initrd، وسيتم الانتقال من عملية مدير نظام initrd (يُعرف أيضًا باسم "عملية init"، معرف العملية 1) إلى مدير النظام الرئيسي الذي يتم تحميله من نظام ملفات الجذر الفعلي للمضيف. يأخذ هذا الأمر وسيطتين: الدليل الذي سيصبح دليل الجذر الجديد، والمسار إلى ملف مدير النظام الجديد الذي سيتم تنفيذه كمعرف العملية 1. إذا تم حذف كليهما أو كان الأول سلسلة فارغة، فسيتم افتراضيًا إلى /sysroot/. إذا تم حذف الوسيطة الثانية أو كانت سلسلة فارغة، فسيتم البحث تلقائيًا عن ملف systemd واستخدامه كمدير خدمة. إذا تم حذف مسار مدير النظام، أو كان مساويًا لسلسلة فارغة أو مطابقًا للمسار إلى ملف systemd، فسيتم تمرير حالة عملية مدير نظام initrd إلى مدير النظام الرئيسي، مما يسمح لاحقًا بفحص حالة الخدمات التي تشارك في مرحلة تمهيد initrd.
أُضيفت في الإصدار 209.
sleep
ضع النظام في وضع السكون، عن طريق الإسبات أو وضع الإسبات العميق أو الإسبات الهجين أو الإسبات ثم وضع الإسبات العميق. يتم تحديد عملية الإسبات التي سيتم استخدامها تلقائيًا بواسطة systemd-logind.service(8). بشكل افتراضي، يتم استخدام "الإسبات ثم وضع الإسبات العميق"، ثم يتم الرجوع إلى "الإسبات" ثم "وضع الإسبات العميق" إذا لم يكن مدعومًا. راجع إعداد SleepOperation= في logind.conf(5) للحصول على مزيد من التفاصيل. هذا الأمر غير متزامن، وسيعود بعد إدراج عملية الإسبات بنجاح. لن ينتظر حتى اكتمال دورة الإسبات/الاستئناف.
أُضيفت في الإصدار 256.
suspend
قم بإسبات النظام. سيؤدي هذا إلى تشغيل وحدة الهدف الخاصة suspend.target. هذا الأمر غير متزامن، وسيعود بعد إدراج عملية الإسبات بنجاح. لن ينتظر حتى اكتمال دورة الإسبات/الاستئناف.
إذا تم تحديد --force، وكانت systemd-logind قد أرجعت خطأً للعملية، فسيتم تجاهل الخطأ وسيتم محاولة العملية مرة أخرى مباشرةً عن طريق بدء وحدة الهدف.
hibernate
ضع النظام في وضع الإسبات العميق. سيؤدي هذا إلى تشغيل وحدة الهدف الخاصة hibernate.target. هذا الأمر غير متزامن، وسيعود بعد إدراج عملية الإسبات العميق بنجاح. لن ينتظر حتى اكتمال دورة الإسبات العميق/الاستئناف.
يستجيب هذا الأمر لـ --force بنفس الطريقة التي يستجيب بها الأمر suspend.
hybrid-sleep
قم بإسبات وإسبات عميق للنظام. سيؤدي هذا إلى تشغيل وحدة الهدف الخاصة hybrid-sleep.target. هذا الأمر غير متزامن، وسيعود بعد إدراج عملية الإسبات الهجين بنجاح. لن ينتظر حتى اكتمال دورة الإسبات/الاستيقاظ.
يستجيب هذا الأمر لـ --force بنفس الطريقة التي يستجيب بها الأمر suspend.
أُضيفت في الإصدار 196.
suspend-then-hibernate
قم بإسبات النظام ووضعه في وضع الإسبات العميق عندما تكون البطارية منخفضة، أو عندما ينقضي التأخير المحدد في systemd-sleep.conf. سيؤدي هذا إلى تشغيل وحدة الهدف الخاصة suspend-then-hibernate.target. هذا الأمر غير متزامن، وسيعود بعد إدراج عملية الإسبات الهجين بنجاح. لن ينتظر حتى اكتمال دورة الإسبات/الاستيقاظ أو دورة الإسبات العميق/الاستئناف.
يستجيب هذا الأمر لـ --force بنفس الطريقة التي يستجيب بها الأمر suspend.
أُضيفت في الإصدار 240.
بناء الجملة للمعلمات
تأخذ الأوامر الخاصة بالوحدات المذكورة أعلاه إما اسم وحدة واحد (يُشار إليه باسم UNIT)، أو مواصفات وحدة متعددة (يُشار إليها باسم PATTERN...). في الحالة الأولى، يجب إعطاء اسم الوحدة مع أو بدون لاحقة. إذا لم يتم تحديد اللاحقة (اسم الوحدة "مختصر")، فستقوم systemctl بإلحاق لاحقة مناسبة، ".service" افتراضيًا، ولاحقة خاصة بالنوع في حالة الأوامر التي تعمل فقط على أنواع معينة من الوحدات. على سبيل المثال:
# systemctl start sshd
و
# systemctl start sshd.service
متكافئان، وكذلك
# systemctl isolate default
و
# systemctl isolate default.target
لاحظ أن المسارات المطلقة إلى عقد الأجهزة يتم تحويلها تلقائيًا إلى أسماء وحدات الأجهزة، والمسارات المطلقة الأخرى إلى أسماء وحدات التحميل.
# systemctl status /dev/sda
# systemctl status /home
متكافئان لـ:
# systemctl status dev-sda.device
# systemctl status home.mount
في الحالة الثانية، يتم مطابقة أنماط shell-style مع الأسماء الأساسية لجميع الوحدات الموجودة حاليًا في الذاكرة؛ يتم التعامل مع أسماء الوحدات الحرفية، مع أو بدون لاحقة، كما هو الحال في الحالة الأولى. هذا يعني أن أسماء الوحدات الحرفية تشير دائمًا إلى وحدة واحدة بالضبط، ولكن يمكن أن تتطابق الأنماط مع صفر وحدة، ولا يُعتبر هذا خطأً.
تستخدم الأنماط العامة fnmatch(3)، لذلك يتم استخدام قواعد globbing القياسية لـ shell، ويمكن استخدام "*", "?", "[]". راجع glob(7) لمزيد من التفاصيل. تتم مطابقة الأنماط مع الأسماء الأساسية للوحدات الموجودة حاليًا في الذاكرة، ويتم تخطي الأنماط التي لا تطابق أي شيء بصمت. على سبيل المثال:
# systemctl stop "sshd@*.service"
سيوقف جميع مثيلات [email protected]. لاحظ أن الأسماء المستعارة للوحدات، والوحدات التي ليست في الذاكرة، لا يتم أخذها في الاعتبار لتوسيع الأنماط.
بالنسبة لأوامر ملفات الوحدة، يجب أن يكون UNIT المحدد هو اسم ملف الوحدة (ربما مختصراً، انظر أعلاه)، أو المسار المطلق إلى ملف الوحدة:
# systemctl enable foo.service
أو
# systemctl link /path/to/foo.service
خيارات
يتم فهم الخيارات التالية:
-t، --type=
الوسيطة عبارة عن قائمة مفصولة بفواصل بأنواع الوحدات مثل الخدمة والمقبس. عند سرد الوحدات باستخدام list-units أو list-dependencies أو show أو status، سيتم عرض الوحدات من الأنواع المحددة فقط. بشكل افتراضي، يتم عرض الوحدات من جميع الأنواع.
في حالة خاصة، إذا كانت إحدى الوسيطات هي help، فسيتم طباعة قائمة بالقيم المسموح بها وسيخرج البرنامج.
--state=
الوسيطة عبارة عن قائمة مفصولة بفواصل بحالات تحميل أو حالة فرعية أو حالة نشطة للوحدة. عند سرد الوحدات باستخدام list-units أو list-dependencies أو show أو status، اعرض فقط تلك الموجودة في الحالات المحددة. استخدم --state=failed أو --failed لعرض الوحدات الفاشلة فقط.
في حالة خاصة، إذا كانت إحدى الوسيطات هي help، فسيتم طباعة قائمة بالقيم المسموح بها وسيخرج البرنامج.
تمت إضافته في الإصدار 206.
-p، --property=
عند عرض خصائص الوحدة / المهمة / المدير باستخدام الأمر show، قم بتقييد العرض بالخصائص المحددة في الوسيطة. يجب أن تكون الوسيطة قائمة مفصولة بفواصل بأسماء الخصائص، مثل "MainPID". ما لم يتم تحديده، يتم عرض جميع الخصائص المعروفة. إذا تم تحديده أكثر من مرة، فسيتم عرض جميع الخصائص بالأسماء المحددة. تم تنفيذ إكمال shell لأسماء الخصائص.
بالنسبة للمدير نفسه، سيعرض الأمر systemctl show جميع الخصائص المتاحة، ومعظمها مشتق أو يطابق بشكل وثيق الخيارات الموصوفة في systemd-system.conf(5).
تختلف الخصائص الخاصة بالوحدات حسب نوع الوحدة، لذلك فإن عرض أي وحدة (حتى وحدة غير موجودة) هو طريقة لسرد الخصائص المتعلقة بهذا النوع. وبالمثل، فإن عرض أي مهمة سيسرد الخصائص المتعلقة بجميع المهام. يتم توثيق خصائص الوحدات في systemd.unit(5)، وصفحات أنواع الوحدات الفردية systemd.service(5) و systemd.socket(5) وما إلى ذلك.
-P
يعادل --value --property=. أي، يعرض قيمة الخاصية بدون اسم الخاصية أو علامة المساواة. لاحظ أن استخدام -P مرة واحدة سيؤثر أيضًا على جميع الخصائص المدرجة باستخدام -p/--property=.
تمت إضافته في الإصدار 246.
-a, --all
عند سرد الوحدات باستخدام list-units، اعرض أيضًا الوحدات غير النشطة والوحدات التي تتبع وحدات أخرى. عند عرض خصائص الوحدة/المهمة/المدير، اعرض جميع الخصائص بغض النظر عما إذا كانت معينة أم لا.
لسرد جميع الوحدات المثبتة في نظام الملفات، استخدم الأمر list-unit-files بدلاً من ذلك.
عند سرد الوحدات باستخدام list-dependencies، اعرض بشكل متكرر تبعيات جميع الوحدات التابعة (افتراضيًا، يتم عرض تبعيات وحدات الهدف فقط).
عند استخدامه مع status، اعرض رسائل السجل بالكامل، حتى لو كانت تحتوي على أحرف غير قابلة للطباعة أو طويلة جدًا. افتراضيًا، يتم اختصار الحقول التي تحتوي على أحرف غير قابلة للطباعة على أنها "blob data". (لاحظ أن برنامج التجميع قد يقوم بإلغاء أحرف غير قابلة للطباعة مرة أخرى).
-r, --recursive
عند سرد الوحدات، اعرض أيضًا وحدات الحاويات المحلية. سيتم بادئة وحدات الحاويات المحلية باسم الحاوية، مفصولة بحرف نقطتين واحد (:).
تمت إضافته في الإصدار 212.
--reverse
اعرض التبعيات العكسية بين الوحدات باستخدام list-dependencies، أي، تتبع التبعيات من نوع WantedBy=، RequiredBy=، UpheldBy=، PartOf=، BoundBy=، بدلاً من Wants= وما شابه ذلك.
تمت إضافته في الإصدار 203.
--after
مع list-dependencies، اعرض الوحدات التي يتم ترتيبها قبل الوحدة المحددة. بمعنى آخر، قم بسرد الوحدات بشكل متكرر التي تتبع تبعية After=.
لاحظ أن أي تبعية After= يتم عكسها تلقائيًا لإنشاء تبعية Before=. يمكن تحديد التبعيات الزمنية بشكل صريح، ولكن يتم إنشاؤها أيضًا ضمنيًا للوحدات التي هي أهداف WantedBy= (انظر systemd.target(5))، ونتيجة لتوجيهات أخرى (على سبيل المثال، RequiresMountsFor=). يتم عرض كل من التبعيات التي تم تحديدها بشكل صريح والتبعيات التي تم إنشاؤها ضمنيًا باستخدام list-dependencies.
عند تمريره إلى الأمر list-jobs، لكل مهمة مطبوعة، اعرض المهام الأخرى التي تنتظرها. يمكن دمجه مع --before لعرض كل من المهام التي تنتظر كل مهمة وجميع المهام التي تنتظرها كل مهمة.
تمت إضافته في الإصدار 203.
--before
مع list-dependencies، اعرض الوحدات التي يتم ترتيبها بعد الوحدة المحددة. بمعنى آخر، قم بسرد الوحدات بشكل متكرر التي تتبع تبعية Before=.
عند تمريره إلى الأمر list-jobs، لكل مهمة مطبوعة، أظهر المهام الأخرى التي تنتظرها. يمكن دمجه مع --after لعرض كل من المهام التي تنتظر كل مهمة، بالإضافة إلى جميع المهام التي تنتظرها.
أُضيفت في الإصدار 212.
--with-dependencies
عند استخدامه مع الأوامر status و cat و list-units و list-unit-files، تطبع هذه الأوامر جميع الوحدات المحددة وتعتمديات تلك الوحدات.
يمكن استخدام الخيارات --reverse و --after و --before لتغيير أنواع التبعيات التي يتم عرضها.
أُضيفت في الإصدار 245.
-l, --full
لا تقم باقتطاع أسماء الوحدات أو إدخالات شجرة العمليات أو إخراج السجل أو اقتطاع أوصاف الوحدات في إخراج الأوامر status و list-units و list-jobs و list-timers.
أيضًا، اعرض أهداف التثبيت في إخراج الأمر is-enabled.
--value
عند طباعة الخصائص باستخدام الأمر show، اطبع القيمة فقط، وتخطى اسم الخاصية وعلامة "=". انظر أيضًا الخيار -P أعلاه.
أُضيفت في الإصدار 230.
--show-types
عند عرض المقابس، اعرض نوع المقبس.
أُضيفت في الإصدار 202.
--job-mode=
عند وضع مهمة جديدة في قائمة الانتظار، يتحكم هذا الخيار في كيفية التعامل مع المهام الموجودة بالفعل في قائمة الانتظار. يأخذ أحد القيم التالية: "fail" أو "lenient" أو "replace" أو "replace-irreversibly" أو "isolate" أو "ignore-dependencies" أو "ignore-requirements" أو "flush" أو "triggering" أو "restart-dependencies". الافتراضي هو "replace"، باستثناء عند استخدام الأمر isolate، والذي يعني ضمنيًا وضع المهمة "isolate".
إذا تم تحديد "fail" وكانت العملية المطلوبة على التبعيات الضعيفة تتعارض مع مهمة معلقة (بمعنى أكثر تحديدًا: تتسبب في تحويل مهمة بدء معلقة بالفعل إلى مهمة إيقاف أو العكس)، فتسبب فشل العملية.
إذا تم تحديد "lenient" وكانت العملية المطلوبة تتعارض مع أي وحدة نشطة/قيد التنشيط، فتسبب فشل العملية.
إذا تم تحديد "replace" (وهو الوضع الافتراضي)، فسيتم استبدال أي مهمة معلقة متعارضة، حسب الحاجة.
إذا تم تحديد "replace-irreversibly"، فتعمل بنفس طريقة "replace"، ولكن أيضًا يتم وضع علامة على المهام الجديدة على أنها غير قابلة للعكس. يمنع هذا المعاملات المتعارضة المستقبلية من استبدال هذه المهام (أو حتى وضعها في قائمة الانتظار أثناء وجود المهام غير القابلة للعكس معلقة). لا تزال المهام غير القابلة للعكس قابلة للإلغاء باستخدام الأمر cancel. يجب استخدام وضع المهمة هذا على أي معاملة تجلب shutdown.target.
"isolate" صالح فقط لعمليات البدء ويتسبب في إيقاف جميع الوحدات الأخرى عند بدء الوحدة المحددة. يتم استخدام هذا الوضع دائمًا عند استخدام الأمر `isolate`.
سيؤدي "flush" إلى إلغاء جميع المهام الموجودة في قائمة الانتظار عند وضع المهمة الجديدة في قائمة الانتظار.
إذا تم تحديد "ignore-dependencies"، فسيتم تجاهل جميع تبعيات الوحدة لهذه المهمة الجديدة ويتم تنفيذ العملية على الفور. إذا تم تمريره، فلن يتم استيراد أي وحدات مطلوبة للوحدة التي تم تمريرها، ولن يتم احترام تبعيات الترتيب. هذه في الغالب أداة تصحيح وأداة إنقاذ للمسؤول، ولا يجب استخدامها بواسطة التطبيقات.
"ignore-requirements" مشابه لـ "ignore-dependencies"، ولكنه يتسبب فقط في تجاهل تبعيات المتطلبات، وسيظل يتم احترام تبعيات الترتيب.
"triggering" لا يمكن استخدامه إلا مع الأمر `systemctl stop`. في هذا الوضع، يتم إيقاف الوحدة المحددة وأي وحدات نشطة تؤدي إلى تشغيلها. راجع مناقشة `Triggers=` في `systemd.unit(5)` لمزيد من المعلومات حول الوحدات المشغّلة.
"restart-dependencies" لا يمكن استخدامه إلا مع الأمر `systemctl start`. في هذا الوضع، ستتلقى التبعيات للوحدة المحددة إعادة تشغيل، كما لو تم وضع مهمة إعادة تشغيل في قائمة الانتظار للوحدة.
تمت إضافته في الإصدار 209.
-T، --show-transaction
عند وضع وحدة في قائمة الانتظار (على سبيل المثال، كنتيجة لاستدعاء `systemctl start` أو ما شابه)، يتم عرض معلومات موجزة حول جميع المهام الموضوعة في قائمة الانتظار، بما في ذلك المهمة المطلوبة وأي مهام تمت إضافتها بسبب تبعيات الوحدة. لاحظ أن الإخراج سيتضمن فقط المهام التي هي جزء مباشر من العملية المطلوبة. من الممكن أن يقوم برنامج بدء تشغيل الخدمة الذي يتم تشغيله كنتيجة للمهام الموضوعة في قائمة الانتظار بطلب المزيد من المهام لوضعها في قائمة الانتظار. هذا يعني أن إكمال المهام المدرجة قد يؤدي في النهاية إلى المزيد من المهام.
تمت إضافته في الإصدار 242.
--fail
اختصار للأمر `--job-mode=fail`.
عند استخدامه مع الأمر `kill`، إذا لم يتم إنهاء أي وحدات، فإن العملية تؤدي إلى حدوث خطأ.
تمت إضافته في الإصدار 227.
--check-inhibitors=
عند طلب إيقاف تشغيل النظام أو الدخول في وضع السكون، يتحكم هذا الخيار في التحقق من الأقفال المثبطة. يأخذ واحدة من القيم "auto" و "yes" و "no". القيمة الافتراضية هي "auto"، مما يعني أن `logind` سيقوم بالتحقق ويحترم الأقفال المثبطة النشطة، ولكن `systemctl` سيقوم فقط بإجراء فحص من جانب العميل في الاستدعاءات التفاعلية (أي من TTY)، بحيث يمكن إرجاع رسالة خطأ أكثر ودية وغنية بالمعلومات للمستخدمين. "no" يعطل عمليات التحقق في كل من `systemctl` و `systemd-logind(8)`.
يمكن للتطبيقات إنشاء أقفال مثبطة لمنع مقاطعة بعض العمليات المهمة (مثل حرق الأقراص المضغوطة) عند إيقاف تشغيل النظام أو الدخول في وضع السكون. يمكن لأي مستخدم تولي هذه الأقفال، ويمكن للمستخدمين المتميزين تجاوز هذه الأقفال. إذا تم تولي أي أقفال، فستفشل طلبات إيقاف التشغيل والدخول في وضع السكون بشكل عام (إلا إذا تم تجاوزها بشكل صريح باستخدام "no").
يوفر الخيار `--force` طريقة أخرى لتجاوز المثبطات.
تمت إضافته في الإصدار 248.
-i
اختصار للأمر `--check-inhibitors=no`.
تمت إضافته في الإصدار 198.
--dry-run
قم فقط بطباعة ما سيتم تنفيذه. مدعوم حاليًا من قبل الأوامر `halt` و `poweroff` و `reboot` و `kexec` و `suspend` و `hibernate` و `hybrid-sleep` و `suspend-then-hibernate` و `default` و `rescue` و `emergency` و `exit`.
تمت إضافته في الإصدار 236.
-q، --quiet
قم بإخفاء طباعة نتائج الأوامر المختلفة وأيضًا التلميحات حول أسطر السجل المقتطعة. هذا لا يخفي إخراج الأوامر التي يكون إخراجها هو النتيجة الوحيدة (مثل `show`). يتم دائمًا طباعة الأخطاء.
-v، --verbose
اعرض إخراج سجل الوحدة أثناء تنفيذ عمليات الوحدة.
تمت إضافته في الإصدار 258.
--no-warn
لا تقم بإنشاء التحذيرات التي تظهر افتراضيًا في الحالات التالية:
أنت محترف، محرك ترجمة أصلي. أنت تقوم بإرجاع النص المترجم فقط، بدون أي تفسيرات أو إضافات.
عند استدعاء systemctl بدون تحميل نظام الملفات proc على /proc،
عند استخدام تمكين أو تعطيل لوحدات بدون معلومات تثبيت (أي ليس لديها أو لديها قسم [Install] فارغ)،
عند استخدام تعطيل مع الخيار --user للوحدات التي تم تمكينها في النطاق العام،
عندما تكون الوحدة التي تم إيقافها أو تعطيلها أو إخفاؤها لا تزال تحتوي على وحدات مشغلة نشطة،
عندما يتم تغيير ملف الوحدة ويتطلب إعادة تحميل التكوين.
تمت إضافته في الإصدار 253.
--no-block
لا تنتظر بشكل متزامن حتى تكتمل العملية المطلوبة. إذا لم يتم تحديد هذا الخيار، سيتم التحقق من الوظيفة ووضعها في قائمة الانتظار وسينتظر systemctl حتى تكتمل عملية بدء تشغيل الوحدة. عند تمرير هذا الخيار، سيتم فقط التحقق من الوظيفة ووضعها في قائمة الانتظار. لا يمكن دمج هذا الخيار مع --wait.
--wait
عند استخدامه مع start أو restart، انتظر بشكل متزامن حتى تنتهي الوحدات التي تم تشغيلها. لا يمكن دمج هذا الخيار مع --no-block. لاحظ أن هذا سينتظر إلى الأبد إذا لم تنته أي وحدة معينة من تلقاء نفسها أو عن طريق إيقافها بشكل صريح؛ خاصة الخدمات التي تستخدم "RemainAfterExit=yes".
عند استخدامه مع is-system-running، انتظر حتى تكتمل عملية التمهيد قبل الإرجاع.
عند استخدامه مع kill، انتظر حتى تنتهي الوحدات التي تم إرسال إشارة إليها. لاحظ أن هذا سينتظر إلى الأبد إذا لم تنته أي وحدة معينة.
تمت إضافته في الإصدار 232.
--user
تواصل مع مدير الخدمة الخاص بالمستخدم الذي قام بتشغيل الأمر، بدلاً من مدير خدمة النظام.
--system
تواصل مع مدير خدمة النظام. هذا هو الافتراضي الضمني.
--failed
عرض الوحدات في حالة فاشلة. هذا يعادل --state=failed.
تمت إضافته في الإصدار 233.
--no-wall
لا ترسل رسالة تحذير قبل إيقاف التشغيل، وإيقاف الطاقة، وإعادة التشغيل.
--global
عند استخدامه مع تمكين أو تعطيل، قم بتشغيل العملية على دليل التكوين العام للمستخدم، وبالتالي تمكين أو تعطيل ملف الوحدة على مستوى عالمي لجميع عمليات تسجيل الدخول المستقبلية لجميع المستخدمين.
--no-reload
عند استخدامه مع تمكين، أو تعطيل، أو إعادة تعيين، أو إخفاء، أو إلغاء إخفاء، لا تقم بإعادة تحميل تكوين مدير الخدمة ضمنيًا بعد تنفيذ التغييرات.
--kill-whom=
عند استخدامه مع kill، اختر العمليات التي سيتم إرسال إشارة نظام التشغيل إليها. يجب أن يكون أحد الخيارات main أو control أو cgroup أو all لتحديد ما إذا كان سيتم قتل العملية الرئيسية فقط، أو عملية التحكم، أو جميع العمليات في مجموعة التحكم الخاصة بالوحدة، أو جميع عمليات الوحدة. العملية الرئيسية للوحدة هي العملية التي تحدد دورة حياتها. تعتبر عملية التحكم للوحدة هي العملية التي يتم استدعاؤها بواسطة المدير لإحداث تغييرات في حالتها. على سبيل المثال، جميع العمليات التي يتم تشغيلها بسبب الإعدادات ExecStartPre= أو ExecStop= أو ExecReload= لوحدات الخدمة هي عمليات تحكم. لاحظ أنه توجد عملية تحكم واحدة فقط لكل وحدة في كل مرة، حيث يتم تنفيذ تغيير حالة واحد فقط في كل مرة. بالنسبة لوحدات الخدمة من النوع Type=forking، تكون العملية الأولية التي يتم تشغيلها بواسطة المدير لـ ExecStart= هي عملية تحكم، بينما تعتبر العملية التي تم إنشاؤها لاحقًا من تلك العملية هي العملية الرئيسية للوحدة (إذا كان من الممكن تحديدها). يختلف هذا بالنسبة لوحدات الخدمة من أنواع أخرى، حيث تكون العملية التي تم إنشاؤها بواسطة المدير لـ ExecStart= هي دائمًا العملية الرئيسية نفسها. تتكون وحدة الخدمة من صفر أو عملية رئيسية واحدة، وصفر أو عملية تحكم واحدة بالإضافة إلى أي عدد من العمليات الإضافية التي تشكل جزءًا من مجموعة التحكم الخاصة بالوحدة. ومع ذلك، لا تدير جميع أنواع الوحدات عمليات من هذه الأنواع. على سبيل المثال، بالنسبة لوحدات التحميل، يتم تعريف عمليات التحكم (وهي استدعاءات /usr/bin/mount و /usr/bin/umount)، ولكن لا يتم تعريف عملية رئيسية. إذا تم حذفه، فسيتم افتراضيًا إلى "all"، باستثناء إذا تم استخدام --kill-subgroup=، وفي هذه الحالة يتم افتراضيًا إلى "cgroup".
أُضيف في الإصدار 252.
--kill-value=INT
إذا تم استخدامه مع الأمر kill، فإنه يقوم بتخزين إشارة مع القيمة الصحيحة المحددة
كـ "معامل" للعملية (العمليات) المحددة. هذه العملية متاحة فقط لإشارات POSIX في الوقت الفعلي (أي --signal=SIGRTMIN+... أو --signal=SIGRTMAX-...)، وتضمن أن يتم إنشاء الإشارات عبر استدعاء النظام sigqueue(3)، بدلاً من [kill]({filename}../../kill)(3). يجب أن تكون القيمة المحددة عددًا صحيحًا موقعًا بحجم 32 بت، ويمكن تحديدها إما في النظام العشري، أو في النظام الست عشري (إذا تم وضع بادئة "0x")، أو في النظام الثماني (إذا تم وضع بادئة "0o") أو في النظام الثنائي (إذا تم وضع بادئة "0b").
إذا تم استخدام هذا الخيار، فسيتم تخزين الإشارة فقط على العملية الرئيسية أو العملية المسيطرة للوحدة، وليس على العمليات الأخرى التي تنتمي إلى الوحدة، أي أن --kill-whom=all سيؤثر فقط على العمليات الرئيسية والعمليات المسيطرة ولكن ليس على أي عمليات أخرى.
أُضيف في الإصدار 254.
--kill-subgroup=PATH
يأخذ مسار فرعي لمجموعة التحكم لإرسال الإشارات إليه، للاستخدام مع الأمر kill. بشكل افتراضي،
يتم تسليم الإشارة المحددة إلى جميع العمليات في مجموعات التحكم الخاصة بالوحدة (بالإضافة إلى
العمليات الرئيسية/المسيطرة (إذا كانت خارج المجموعة) - رهناً بـ --kill-whom=). ولكن مع هذا الخيار، يمكن تحديد مجموعة فرعية بدلاً من ذلك. هذا
الوظيفة متاحة فقط للوحدات التي يتم فيها تمكين تفويض مجموعة التحكم (انظر Delegate= في systemd.resource-control(5))، وفي الواقع، فإن الخيار الأخير هو الافتراضي إذا تم استخدام --kill-subgroup= .
قد يتم، ولكن ليس بالضرورة، وضع بادئة للمسار المحدد بشرطة مائلة، ولا يهم وجودها أو عدم وجودها، يتم أخذ المسار على أي حال بالنسبة إلى المسار الرئيسي لمجموعة التحكم الخاصة بالوحدة.
هذه الوظيفة متاحة فقط للوحدات التي يتم فيها تمكين تفويض مجموعة التحكم (انظر Delegate= في systemd.resource-control(5)).
أُضيف في الإصدار 258.
-s، --signal=
عند استخدامه مع الأمر kill، اختر الإشارة التي سيتم إرسالها إلى العمليات المحددة. يجب أن تكون واحدة من
معرفات الإشارة المعروفة مثل SIGTERM أو SIGINT أو SIGSTOP. إذا تم حذفه، فسيتم استخدام SIGTERM بشكل افتراضي.
القيمة الخاصة "help" ستعرض القيم المعروفة وسيخرج البرنامج على الفور،
والقيمة الخاصة "list" ستعرض القيم المعروفة جنبًا إلى جنب مع أرقام الإشارة العددية وسيخرج البرنامج على الفور.
--what=
حدد نوع موارد الوحدة التي سيتم إزالتها عند استدعاء الأمر clean، كما هو موضح
أعلاه. يأخذ أحد أنواع الموارد: configuration أو state أو cache أو logs أو runtime أو fdstore لتحديد نوع المورد. يمكن تحديد هذا الخيار أكثر من مرة، وفي هذه الحالة تتم إزالة جميع أنواع الموارد المحددة. كما أنه يقبل القيمة الخاصة "all" كاختصار لتحديد جميع الأنواع الستة من الموارد. إذا لم يتم تحديد هذا الخيار، فسيتم استخدام المجموعة الافتراضية من cache و runtime و fdstore، أي الأنواع الثلاثة من الموارد التي تعتبر بشكل عام زائدة عن الحاجة ويمكن إعادة إنشائها عند الاستدعاء التالي. لاحظ أن الإزالة الصريحة لنوع مورد fdstore مفيدة فقط إذا تم تمكين خيار FileDescriptorStorePreserve=، لأن مخزن واصف الملف يتم تنظيفه تلقائيًا عند إيقاف الوحدة.
تمت إضافته في الإصدار 243.
-f, --force
عند استخدامه مع enable، يستبدل أي روابط رمزية متعارضة موجودة.
عند استخدامه مع edit، ينشئ جميع الوحدات المحددة التي لا توجد بالفعل.
عند استخدامه مع suspend، أو hibernate، أو hybrid-sleep، أو suspend-then-hibernate، يتم تجاهل الخطأ الذي يعيده systemd-logind، ويتم تنفيذ العملية مباشرةً عن طريق بدء الوحدات المقابلة.
عند استخدامه مع halt، أو poweroff، أو reboot، أو kexec، يتم تنفيذ العملية المحددة دون إيقاف تشغيل جميع الوحدات. ومع ذلك، سيتم إنهاء جميع العمليات بالقوة وسيتم إلغاء تحميل أو إعادة تحميل جميع أنظمة الملفات في وضع القراءة فقط. هذا بالتالي خيار جذري ولكنه آمن نسبيًا لطلب إعادة تشغيل فورية. إذا تم تحديد --force مرتين لهذه العمليات (باستثناء kexec)، فسيتم تنفيذها على الفور، دون إنهاء أي عمليات أو إلغاء تحميل أي أنظمة ملفات.
تحذير
قد يؤدي تحديد --force مرتين مع أي من هذه العمليات إلى فقدان البيانات. لاحظ أنه عند تحديد --force مرتين، يتم تنفيذ العملية المحددة بواسطة systemctl نفسه، ولا يتم الاتصال بمدير النظام. وهذا يعني أنه يجب أن تنجح الأمر حتى في حالة تعطل مدير النظام.
--message=
عند استخدامه مع halt، أو poweroff أو reboot، يتم تعيين رسالة قصيرة توضح سبب العملية. سيتم تسجيل الرسالة مع رسالة الإغلاق الافتراضية.
تمت إضافته في الإصدار 225.
--now
عند استخدامه مع enable، أو disable، أو mask، أو reenable، يتم أيضًا بدء/إيقاف/محاولة إعادة تشغيل الوحدات بعد نجاح عمليات ملف الوحدة المحددة.
تمت إضافته في الإصدار 220.
--root=
عند استخدامه مع enable/disable/is-enabled (والأوامر ذات الصلة)، يتم استخدام مسار الجذر المحدد عند البحث عن ملفات الوحدة. إذا كان هذا الخيار موجودًا، فسيعمل systemctl مباشرةً على نظام الملفات، بدلاً من التواصل مع برنامج systemd لتنفيذ التغييرات.
--image=image
يأخذ مسارًا إلى ملف صورة القرص أو عقدة جهاز الكتلة. إذا تم تحديده، فسيتم تطبيق جميع العمليات على نظام الملفات في صورة القرص المحددة. هذا الخيار مشابه لـ --root=، ولكنه يعمل على أنظمة الملفات المخزنة في صور القرص أو أجهزة الكتلة. يجب أن تحتوي صورة القرص إما على نظام ملفات واحد فقط أو مجموعة من أنظمة الملفات داخل جدول تقسيم GPT، باتباع مواصفات UAPI.2 Discoverable Partitions Specification[2]. لمزيد من المعلومات حول صور الأقراص المدعومة، راجع الخيار الذي يحمل نفس الاسم في systemd-nspawn(1).
تمت إضافته في الإصدار 252.
--image-policy=policy
يأخذ سلسلة سياسة صورة كمعامل، كما هو موضح في systemd.image-policy(7). يتم تطبيق السياسة عند العمل على صورة القرص المحددة عبر --image=، كما هو مذكور أعلاه. إذا لم يتم تحديده، فسيتم استخدام سياسة "*" افتراضيًا، أي يتم استخدام جميع أنظمة الملفات المعترف بها في الصورة.
--runtime
عند استخدامه مع تمكين أو تعطيل أو تعديل (والأوامر ذات الصلة)، قم بإجراء تغييرات مؤقتة فقط، بحيث يتم فقدها عند إعادة التشغيل التالية. سيكون لهذا تأثير أن التغييرات لا تتم في الدلائل الفرعية من /etc ولكن في /run/، مع تأثير فوري مماثل، ومع ذلك، نظرًا لأن هذا الأخير يتم فقده عند إعادة التشغيل، فسيتم فقد التغييرات أيضًا.
وبالمثل، عند استخدامه مع set-property، قم بإجراء تغييرات مؤقتة فقط، بحيث يتم فقدها عند إعادة التشغيل التالية.
--preset-mode=
يأخذ إحدى القيم "full" (افتراضيًا)، أو "enable-only"، أو "disable-only". عند استخدامه مع الأمر preset أو preset-all، يتحكم فيما إذا كان يجب تعطيل الوحدات وتمكينها وفقًا لقواعد الإعداد المسبق، أو تمكينها فقط، أو تعطيلها فقط.
تمت إضافته في الإصدار 215.
-n, --lines=
عند استخدامه مع status، يتحكم في عدد أسطر السجل المراد عرضها، بدءًا من الأحدث. يأخذ وسيطة عدد صحيح موجب، أو 0 لتعطيل إخراج السجل. القيمة الافتراضية هي:
-o, --output=
عند استخدامه مع status، يتحكم في تنسيق إدخالات السجل المعروضة. للحصول على الخيارات المتاحة، راجع journalctl(1). القيمة الافتراضية هي "short".
--firmware-setup
عند استخدامه مع الأمر reboot أو poweroff أو halt، يشير إلى البرنامج الثابت للنظام للدخول إلى واجهة إعداد البرنامج الثابت في المرة التالية التي يتم فيها تشغيل النظام. لاحظ أن هذه الوظيفة غير متوفرة على جميع الأنظمة.
تمت إضافته في الإصدار 220.
--boot-loader-menu=timeout
عند استخدامه مع الأمر reboot أو poweroff أو halt، يشير إلى برنامج تحميل النظام لعرض قائمة برنامج تحميل النظام في المرة التالية التي يتم فيها تشغيل النظام. يأخذ قيمة زمنية كمعامل - مما يشير إلى مهلة القائمة. مرر صفرًا لتعطيل مهلة القائمة. لاحظ أن ليست جميع برامج تحميل النظام تدعم هذه الوظيفة.
تمت إضافته في الإصدار 242.
--boot-loader-entry=ID
عند استخدامه مع الأمر reboot أو poweroff أو halt، يشير إلى برنامج تحميل النظام للتمهيد إلى إدخال برنامج تحميل نظام معين في المرة التالية التي يتم فيها تشغيل النظام. يأخذ معرف إدخال برنامج تحميل النظام كمعامل، أو "help" لعرض الإدخالات المتاحة. لاحظ أن ليست جميع برامج تحميل النظام تدعم هذه الوظيفة.
تمت إضافته في الإصدار 242.
--reboot-argument=
يستخدم هذا الخيار مع reboot. القيمة خاصة بالمعمارية والبرامج الثابتة. على سبيل المثال، قد يتم استخدام "recovery" لتشغيل وضع الاسترداد، وقد يتم استخدام "fota" لتشغيل تحديث "البرامج الثابتة عبر الهواء".
تمت إضافته في الإصدار 246.
--plain
عند استخدامه مع list-dependencies أو list-units أو list-machines، يتم طباعة الإخراج كقائمة بدلاً من شجرة، ويتم حذف الدوائر النقطية.
تمت إضافته في الإصدار 203.
--timestamp=
تغيير تنسيق الطوابع الزمنية المطبوعة. يمكن استخدام القيم التالية:
pretty (هذا هو الإعداد الافتراضي)
"اليوم YYYY-MM-DD HH:MM:SS TZ"
أُضيف في الإصدار 248.
unix
"@عدد-الثواني-منذ-بداية-الحقبة"
أُضيف في الإصدار 251.
us, μs
"اليوم YYYY-MM-DD HH:MM:SS.UUUUUU TZ"
أُضيف في الإصدار 248.
utc
"اليوم YYYY-MM-DD HH:MM:SS UTC"
أُضيف في الإصدار 248.
us+utc, μs+utc
"اليوم YYYY-MM-DD HH:MM:SS.UUUUUU UTC"
أُضيف في الإصدار 248.
أُضيف في الإصدار 247.
--mkdir
عند استخدامه مع bind، يقوم بإنشاء ملف الوجهة أو الدليل قبل تطبيق mount. لاحظ أنه على الرغم من أن اسم هذا الخيار يشير إلى أنه مناسب فقط للدلائل، إلا أن هذا الخيار يقوم أيضًا بإنشاء عقدة الملف الوجهة ليتم تركيبها إذا لم يكن الكائن المراد تركيبه دليلًا، ولكن ملفًا عاديًا أو عقدة جهاز أو مقبس أو FIFO.
أُضيف في الإصدار 248.
--marked
يُسمح باستخدامه فقط مع reload-or-restart. يقوم بتجميع مهام إعادة التشغيل لجميع الوحدات التي تحمل علامة "needs-restart"، ومهام إعادة التحميل للوحدات التي تحمل علامة "needs-reload". عندما لا تدعم الوحدة التي تحمل علامة إعادة التحميل إعادة التحميل، سيتم تجميع مهمة إعادة التشغيل. يمكن تعيين هذه الخصائص باستخدام set-property Markers=....
ما لم يتم استخدام --no-block، سينتظر systemctl حتى تنتهي المهام المجمعة.
أُضيف في الإصدار 248.
--read-only
عند استخدامه مع bind، يقوم بإنشاء mount مقروء فقط.
أُضيف في الإصدار 248.
--drop-in=NAME
عند استخدامه مع edit، استخدم NAME كاسم ملف drop-in بدلاً من override.conf.
أُضيف في الإصدار 253.
--when=
عند استخدامه مع halt أو poweroff أو reboot أو kexec، جدولة الإجراء ليتم تنفيذه في الطابع الزمني المحدد، والذي يجب أن يلتزم بالصيغة الموثقة في systemd.time(7) في قسم "PARSING TIMESTAMPS". على وجه التحديد، إذا تم إعطاء "show"، فسيتم عرض الإجراء المجدول حاليًا، والذي يمكن إلغاؤه عن طريق تمرير سلسلة فارغة أو "cancel". سيقوم "auto" بجدولة الإجراء وفقًا لفترة الصيانة أو بعد دقيقة واحدة.
أُضيف في الإصدار 254.
--stdin
عند استخدامه مع edit، سيتم قراءة محتويات الملف من الإدخال القياسي ولن يتم تشغيل المحرر. في هذا الوضع، يتم استبدال المحتويات القديمة للملف بالكامل. هذا مفيد "لتعديل" ملفات الوحدات من البرامج النصية:
$ systemctl edit --drop-in=limits.conf --stdin some-service.service <<EOF
[Unit]
AllowedCPUs=7,11
EOF
يمكن "تحرير" ملفات drop-in متعددة في هذا الوضع؛ سيتم كتابة نفس المحتويات في جميعها.
أُضيف في الإصدار 256.
-H, --host=
قم بتنفيذ العملية عن بُعد. حدد اسم مضيف، أو اسم مستخدم واسم مضيف مفصولين بـ "@"، للاتصال به. يمكن إضافة لاحقة إلى اسم المضيف، على سبيل المثال منفذ يستمع إليه ssh، مفصولة بـ ":"، ثم اسم الحاوية، مفصولة بـ "/"، مما يتصل مباشرةً بحاوية معينة على المضيف المحدد. سيستخدم هذا SSH للتحدث مع مثيل مدير الجهاز عن بُعد. يمكن سرد أسماء الحاويات باستخدام machinectl -H HOST. ضع عناوين IPv6 بين قوسين.
-M, --machine=
قم بتنفيذ العملية على حاوية محلية. حدد اسم حاوية للاتصال بها، اختياريًا مع بادئة اسم مستخدم للاتصال به وفصلها بحرف "@". إذا تم استخدام السلسلة الخاصة ".host" بدلاً من اسم الحاوية، فسيتم إجراء اتصال بالنظام المحلي (وهو أمر مفيد للاتصال بمسار مستخدم معين: "--user [email protected]"). إذا لم يتم استخدام بناء الجملة "@"، يتم إجراء الاتصال كمستخدم root. إذا تم استخدام بناء الجملة "@"، فيمكن حذف إما الجانب الأيسر أو الجانب الأيمن (ولكن ليس كليهما)، وفي هذه الحالة يتم تضمين اسم المستخدم المحلي و".host".
-C, --capsule=
نفّذ العملية على كبسولة. حدد اسم الكبسولة للاتصال بها. انظر إلى [email protected](5)
للحصول على تفاصيل حول الكبسولات.
تمت إضافته في الإصدار 256.
--no-ask-password
لا تطالب المستخدم بإدخال بيانات الاعتماد للعمليات المتميزة.
--no-pager
لا يوجه الإخراج إلى أداة عرض الصفحات.
--legend=BOOL
قم بتمكين أو تعطيل طباعة التسمية التوضيحية، أي عناوين الأعمدة والتذييل مع التلميحات.
يتم طباعة التسمية التوضيحية افتراضيًا، ما لم يتم تعطيلها باستخدام --quiet أو ما شابه ذلك.
-h, --help
اطبع نص مساعدة موجزًا واخرج.
--version
اطبع سلسلة إصدار موجزة واخرج.
حالة الخروج
عند النجاح، يتم إرجاع 0، وإلا يتم إرجاع رمز فشل غير صفري.
يستخدم systemctl رموز الإرجاع المحددة بواسطة LSB، كما هو محدد في LSB 3.0.0[3].
جدول 5. رموز إرجاع LSB
┌───────┬────────────────────────────┬──────────────────────────┐
│ القيمة │ الوصف في LSB │ الاستخدام في systemd │
├───────┼────────────────────────────┼──────────────────────────┤
│ 0 │ "البرنامج قيد التشغيل أو │ الوحدة نشطة │
│ │ الخدمة تعمل بشكل جيد" │ │
├───────┼────────────────────────────┼──────────────────────────┤
│ 1 │ "البرنامج متوقف و │ الوحدة غير معطلة (تستخدم بواسطة │
│ │ يوجد ملف PID في /var/run" │ is-failed) │
├───────┼────────────────────────────┼──────────────────────────┤
│ 2 │ "البرنامج متوقف و │ غير مستخدم │
│ │ يوجد ملف قفل في /var/lock" │ │
│ │ يوجد" │ │
├───────┼────────────────────────────┼──────────────────────────┤
│ 3 │ "البرنامج لا يعمل" │ الوحدة غير نشطة │
├───────┼────────────────────────────┼──────────────────────────┤
│ 4 │ "حالة البرنامج أو الخدمة │ لا توجد وحدة بهذا الاسم │
│ │ غير معروفة" │ │
└───────┴────────────────────────────┴──────────────────────────┘
إن تعيين حالات خدمة LSB إلى حالات وحدة systemd ليس مثاليًا، لذلك من الأفضل عدم الاعتماد على قيم الإرجاع هذه، ولكن البحث عن حالات ووحدات فرعية محددة بدلاً من ذلك.
البيئة
$SYSTEMD_EDITOR
المحرر الذي سيتم استخدامه عند تحرير الوحدات؛ يتجاوز $EDITOR و $VISUAL. إذا لم يكن أي من $SYSTEMD_EDITOR أو $EDITOR أو $VISUAL موجودًا، أو إذا تم تعيينه إلى سلسلة فارغة، أو إذا فشل تنفيذه، فسيحاول systemctl تنفيذ المحررين المعروفين بالترتيب التالي: editor(1)، [nano]({filename}../../nano)(1)، [vim]({filename}../../vim)(1)، vi(1).
تمت إضافته في الإصدار 218.
$SYSTEMD_LOG_LEVEL
الحد الأقصى لمستوى التسجيل للرسائل المنبعثة (سيتم قمع الرسائل ذات مستوى تسجيل أعلى، أي الأقل أهمية). يأخذ قائمة مفصولة بفواصل من القيم. يمكن أن تكون القيمة إما واحدة من (بالترتيب التنازلي للأهمية) emerg، alert، crit، err، warning، notice، info، debug، أو عدد صحيح في النطاق 0...7. راجع syslog(3) للحصول على مزيد من المعلومات. يمكن اختياريًا إضافة بادئة إلى كل قيمة بواحدة من console أو syslog أو kmsg أو journal متبوعة بنقطتين لتحديد الحد الأقصى لمستوى التسجيل لهدف السجل المحدد (على سبيل المثال، يحدد SYSTEMD_LOG_LEVEL=debug,console:info تسجيل مستوى التصحيح باستثناء عند التسجيل في وحدة التحكم والتي يجب أن تكون في مستوى المعلومات). لاحظ أن الحد الأقصى العام لمستوى التسجيل له الأولوية على أي مستويات تسجيل قصوى خاصة بالهدف.
$SYSTEMD_LOG_COLOR
قيمة منطقية. إذا كانت القيمة صحيحة، فسيتم تلوين الرسائل المكتوبة في المحطة الطرفية وفقًا للأولوية.
هذا الإعداد مفيد فقط عندما تتم كتابة الرسائل مباشرة إلى المحطة الطرفية، لأن [journalctl]({filename}../../journalctl)(1) والأدوات الأخرى التي تعرض السجلات ستلون الرسائل بناءً على مستوى التسجيل من تلقاء نفسها.
$SYSTEMD_LOG_TIME
قيمة منطقية. إذا كانت القيمة صحيحة، فسيتم إضافة بادئة زمنية إلى رسائل سجل وحدة التحكم.
هذا الإعداد مفيد فقط عندما تتم كتابة الرسائل مباشرة إلى المحطة الطرفية أو ملف، لأن [journalctl]({filename}../../journalctl)(1) والأدوات الأخرى التي تعرض السجلات ستلحق الطوابع الزمنية بناءً على بيانات التعريف الخاصة بالإدخال.
$SYSTEMD_LOG_LOCATION
قيمة منطقية. إذا كانت القيمة صحيحة، فسيتم إضافة بادئة للرسائل باسم الملف ورقم السطر في التعليمات البرمجية حيث نشأت الرسالة.
لاحظ أن موقع السجل غالبًا ما يتم إرفاقه كبيانات تعريف لإدخالات السجل على أي حال. ومع ذلك، يمكن أن يكون تضمينه مباشرة في نص الرسالة مفيدًا عند تصحيح الأخطاء.
$SYSTEMD_LOG_TARGET
وجهة رسائل السجل. إحدى القيم التالية: console (التسجيل إلى المحطة الطرفية المرفقة)، console-prefixed (التسجيل إلى المحطة الطرفية المرفقة ولكن مع بادئات ترميز مستوى التسجيل و"المرفق"، راجع syslog(3)، kmsg (التسجيل إلى المخزن المؤقت لسجلات النواة)، journal (التسجيل إلى السجل)، journal-or-kmsg (التسجيل إلى السجل إذا كان متاحًا، وإلى kmsg خلاف ذلك)، auto (تحديد هدف السجل المناسب تلقائيًا، وهو الإعداد الافتراضي)، null (تعطيل إخراج السجل).
$SYSTEMD_PAGER، $PAGER
مُعالج الصفحات الذي سيتم استخدامه عند عدم تحديد الخيار `--no-pager`. يتم استخدام `$SYSTEMD_PAGER` إذا تم تعيينه؛ وإلا يتم استخدام `$PAGER`. إذا لم يتم تعيين أي من `$SYSTEMD_PAGER` أو `$PAGER`، يتم تجربة مجموعة من تطبيقات معالج الصفحات المعروفة بالتتابع، بما في ذلك [less]({filename}../../less)(1) و more(1)، حتى يتم العثور على أحدها. إذا لم يتم اكتشاف أي تطبيق لمعالج الصفحات، فلن يتم استدعاء أي معالج صفحات. إن تعيين هذه المتغيرات البيئية إلى سلسلة فارغة أو القيمة "cat" يعادل تمرير الخيار `--no-pager`.
ملاحظة: إذا لم يتم تعيين `$SYSTEMD_PAGERSECURE`، يمكن استخدام `$SYSTEMD_PAGER` و `$PAGER` فقط لتعطيل معالج الصفحات (باستخدام "cat" أو "")، وإلا فسيتم تجاهلهما.
$SYSTEMD_LESS
قم بتجاوز الخيارات التي يتم تمريرها إلى less (بشكل افتراضي "FRSXMK").
قد يرغب المستخدمون في تغيير خيارين على وجه الخصوص:
K
يخبر هذا الخيار معالج الصفحات بالخروج فورًا عند الضغط على Ctrl+C. للسماح لـ less بمعالجة Ctrl+C بنفسه للعودة إلى موجه أوامر معالج الصفحات، قم بإلغاء تعيين هذا الخيار.
إذا لم تتضمن قيمة `$SYSTEMD_LESS` "K"، وكان معالج الصفحات الذي يتم استدعاؤه هو less، فسيتم تجاهل Ctrl+C بواسطة البرنامج القابل للتنفيذ، ويجب معالجته بواسطة معالج الصفحات.
X
يخبر هذا الخيار معالج الصفحات بعدم إرسال سلاسل تهيئة وإلغاء تهيئة termcap إلى الوحدة الطرفية. يتم تعيينه افتراضيًا للسماح ببقاء إخراج الأمر مرئيًا في الوحدة الطرفية حتى بعد خروج معالج الصفحات. ومع ذلك، يمنع هذا بعض وظائف معالج الصفحات من العمل، وعلى وجه الخصوص، لا يمكن التمرير عبر الإخراج باستخدام الماوس.
لاحظ أن تعيين متغير البيئة العادي `$LESS` ليس له أي تأثير على استدعاءات less بواسطة أدوات systemd.
راجع [less]({filename}../../less)(1) لمزيد من المناقشة.
$SYSTEMD_LESSCHARSET
قم بتجاوز مجموعة الأحرف التي يتم تمريرها إلى less (افتراضيًا "utf-8"، إذا تم تحديد أن الوحدة الطرفية التي تستدعي هي متوافقة مع UTF-8).
لاحظ أن تعيين متغير البيئة العادي `$LESSCHARSET` ليس له أي تأثير على استدعاءات less بواسطة أدوات systemd.
$SYSTEMD_PAGERSECURE
تسمح أوامر معالج الصفحات الشائعة مثل [less]({filename}../../less)(1)، بالإضافة إلى "التصفح"، أي التمرير عبر الإخراج، بفتح أو كتابة ملفات أخرى وتشغيل أوامر shell عشوائية.
عند استدعاء الأوامر بامتيازات مرتفعة، على سبيل المثال تحت [sudo]({filename}../../sudo)(8) أو pkexec(1)، يصبح معالج الصفحات حدًا أمانيًا. يجب توخي الحذر بحيث يتم استخدام البرامج ذات الوظائف المحدودة فقط كمعالجات صفحات، ولا يُسمح بالميزات التفاعلية غير المقصودة مثل فتح أو إنشاء ملفات جديدة أو بدء عمليات فرعية. يمكن تمكين "الوضع الآمن" لمعالج الصفحات كما هو موضح أدناه، إذا كان معالج الصفحات يدعم ذلك (معظم معالجات الصفحات ليست مكتوبة بطريقة تأخذ ذلك في الاعتبار). يوصى إما بتمكين "الوضع الآمن" بشكل صريح أو بتعطيل معالج الصفحات تمامًا باستخدام `--no-pager` أو `PAGER=cat` عند السماح للمستخدمين غير الموثوق بهم بتنفيذ أوامر بامتيازات مرتفعة.
يأخذ هذا الخيار وسيطًا منطقيًا. عند تعيينه على true، يتم تمكين "الوضع الآمن" لبرنامج عرض الصفحات. في "الوضع الآمن"، سيتم تعيين LESSSECURE=1 عند استدعاء برنامج عرض الصفحات، مما يوجهه إلى تعطيل الأوامر التي تفتح أو تنشئ ملفات جديدة أو تبدأ عمليات فرعية جديدة. حاليًا، يُعرف أن less(1) فقط يفهم هذا المتغير وينفذ "الوضع الآمن".
عند تعيينه على false، لا يتم فرض أي قيود على برنامج عرض الصفحات. قد يؤدي تعيين SYSTEMD_PAGERSECURE=0 أو عدم إزالته من البيئة الموروثة إلى السماح للمستخدم بتشغيل أوامر عشوائية.
عندما لا يتم تعيين $SYSTEMD_PAGERSECURE، تحاول أدوات systemd تحديد تلقائيًا ما إذا كان يجب تمكين "الوضع الآمن" وما إذا كان برنامج عرض الصفحات يدعمه. يتم تمكين "الوضع الآمن" إذا لم يكن معرف المستخدم الفعلي هو نفسه مالك جلسة تسجيل الدخول، راجع geteuid(2) و sd_pid_get_owner_uid(3)، أو عند التشغيل تحت sudo(8) أو أدوات مماثلة ($SUDO_UID مُعيّن [4]). في هذه الحالات، سيتم تعيين SYSTEMD_PAGERSECURE=1 ولن يتم استخدام برامج عرض الصفحات التي لا يُعرف أنها تنفذ "الوضع الآمن". لاحظ أن هذا الكشف التلقائي يغطي فقط آليات رفع الامتيازات الأكثر شيوعًا وهو مُصمم ليكون مريحًا. يوصى بتعيين $SYSTEMD_PAGERSECURE بشكل صريح أو تعطيل برنامج عرض الصفحات.
لاحظ أنه إذا كان من المفترض تكريم المتغيرين $SYSTEMD_PAGER أو $PAGER بخلاف تعطيل برنامج عرض الصفحات، فيجب أيضًا تعيين $SYSTEMD_PAGERSECURE.
^ SYSTEMD_COLORS
يأخذ هذا المتغير وسيطًا منطقيًا. عندما يكون true، ستستخدم systemd والأدوات ذات الصلة الألوان في إخراجها، وإلا فسيكون الإخراج أحادي اللون. بالإضافة إلى ذلك، يمكن أن يأخذ المتغير إحدى القيم الخاصة التالية: "16" أو "256" لتقييد استخدام الألوان إلى مجموعة ألوان ANSI الأساسية المكونة من 16 أو 256 لونًا على التوالي. يمكن تحديد ذلك لإلغاء القرار التلقائي بناءً على $TERM وما إذا كانت وحدة التحكم متصلة.
^ SYSTEMD_URLIFY
يجب أن تكون القيمة منطقية. يتحكم فيما إذا كان يجب إنشاء روابط قابلة للنقر في الإخراج لوحدات المحاكاة الطرفية التي تدعم ذلك. يمكن تحديد ذلك لإلغاء القرار الذي تتخذه systemd بناءً على $TERM وشروط أخرى.
انظر أيضًا
systemd(1)، journalctl(1)، loginctl(1)، machinectl(1)، systemd.unit(5)، systemd.resourcecontrol(5)، systemd.special(7)، wall(1)، systemd.preset(5)، systemd.generator(7)، glob(7)
ملاحظات
^ API.1 مواصفات مُحمِّل الإقلاع
https://uapi-group.org/specifications/specs/boot_loader_specification
^ API.2 مواصفات الأقسام القابلة للاكتشاف
https://uapi-group.org/specifications/specs/discoverable_partitions_specification
^ SB 3.0.0
http://refspecs.linuxbase.org/LSB_3.0.0/LSB-PDA/LSB-PDA/iniscrptact.html
يوصى بأن تقوم الأدوات الأخرى بتعيين والتحقق من $SUDO_UID حسب الاقتضاء، مع معاملتها كواجهة مشتركة.