Scroll to navigation

SYSTEMCTL(1) systemctl SYSTEMCTL(1)

الاسم

systemctl - التحكم في مدير النظام والخدمة systemd

موجز

systemctl [OPTIONS...] COMMAND [UNIT...]

الوصف

يمكن استخدام systemctl لفحص والتحكم في حالة مدير النظام والخدمة "systemd". يُرجى الرجوع إلى systemd(1) للحصول على مقدمة حول المفاهيم الأساسية والوظائف التي تديرها هذه الأداة.

الأوامر

الأوامر التالية مفهومة:

أوامر الوحدة (الفحص والتعديل)

list-units [PATTERN...]

يسرد الوحدات التي يحتفظ بها systemd حاليًا في الذاكرة. يتضمن ذلك الوحدات المشار إليها إما مباشرة أو عبر تبعية، أو الوحدات التي ثبتتها التطبيقات برمجياً، أو الوحدات التي كانت نشطة في الماضي وفشلت. مبدئيًا، تُعرض فقط الوحدات النشطة، أو التي لديها مهام معلقة، أو التي فشلت؛ ويمكن تغيير ذلك باستخدام الخيار --all. إذا حُدد PATTERN واحد أو أكثر، تُعرض فقط الوحدات التي تطابق أحدها. تُصفى الوحدات المعروضة إضافيًا بواسطة --type= و --state= إذا حُددت هذه الخيارات.

لاحظ أن هذا الأمر لا يعرض قوالب الوحدات، بل يعرض فقط نماذج من قوالب الوحدات. قوالب الوحدات التي لم تُنشأ منها نماذج ليست قابلة للتشغيل، ولن تظهر أبدًا في مخرجات هذا الأمر. يعني هذا تحديدًا أن foo@.service لن يظهر أبدًا في هذه القائمة — ما لم يُنشأ منه نموذج، مثل foo@bar.service. استخدم list-unit-files (انظر أدناه) لسرد ملفات قوالب الوحدات المثبتة.

ينتج مخرجات مشابهة لـ


الوحدة التحميل النشاط الفرع الوصف
sys-module-fuse.device تم التحميل نشط متصل /sys/module/fuse
-.mount محمل نشط مثبت Root Mount
boot-efi.mount محمل نشط مثبت /boot/efi
systemd-journald.service محمل نشط قيد التشغيل خدمة السجل
systemd-logind.service محمل نشط قيد التشغيل خدمة تسجيل الدخول ● user@1000.service تحميل فاشل فاشل مدير المستخدم لـ UID 1000
...
systemd-tmpfiles-clean.timer تحميل نشط في انتظار التنظيف اليومي للمجلدات المؤقتة LOAD = يعكس ما إذا حُمّل تعريف الوحدة بشكل صحيح. ACTIVE = حالة تنشيط الوحدة رفيعة المستوى، أي تعميم لـ SUB. SUB = حالة تنشيط الوحدة منخفضة المستوى، تعتمد القيم على نوع الوحدة. سُردت 123 وحدة محملة. مرر --all لرؤية الوحدات المحملة ولكن غير النشطة أيضًا. لعرض كافة ملفات الوحدات المثبتة استخدم 'systemctl list-unit-files'.

يُوضع خط تحت الترويسة وآخر وحدة من نوع معين إذا كان الطرف الموصل يدعم ذلك. تظهر نقطة ملونة بجانب الخدمات التي حُجبت، أو لم يُعثر عليها، أو فشلت بأي شكل آخر.

يعرض عمود LOAD حالة التحميل، وهي واحدة من loaded، not-found، bad-setting، error، masked. ويعرض عمود ACTIVE حالة الوحدة العامة، وهي واحدة مما يلي:

جدول 1. حالات الوحدة النشطة

الحالة الوصف
نشط بدأت، ارتبطت، وُصلت، ...، اعتماداً على نوع الوحدة.
inactive توقفت، فُك ارتباطها، فُصلت، ...، اعتماداً على نوع الوحدة.
failed مشابه لـ inactive (غير نشط)، ولكن الوحدة فشلت بطريقة ما (أعادت العملية رمز خطأ عند الخروج، أو انهارت، أو انتهت مهلة عملية ما، أو بعد عدد كبير جداً من إعادات التشغيل).
جارٍ التنشيط التغيير من inactive إلى active.
deactivating التغيير من active إلى inactive.
maintenance الوحدة غير نشطة وتجري عملية صيانة حاليًا.
reloading الوحدة نشطة وهي تعيد تحميل تهيئتها.
refreshing الوحدة نشطة ويجري تنشيط وصل جديد في مساحة الأسماء الخاصة بها.

يعرض عمود SUB الحالة التفصيلية المحددة لنوع الوحدة، وتختلف القيم الممكنة حسب نوع الوحدة. قائمة حالات LOAD و ACTIVE و SUB الممكنة ليست ثابتة وقد تضيف إصدارات systemd الجديدة قيمًا أو تزيلها.

systemctl --state=help

يمكن استخدام هذا الأمر لعرض المجموعة الحالية من القيم الممكنة.

هذا هو الأمر المبدئي.

list-automounts [PATTERN...]

يسرد وحدات الوصل الآلي الموجودة حاليًا في الذاكرة، مرتبة حسب مسار الوصل. إذا حُدد 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
سُرد وصلان آليان.

انظر أيضًا --show-types و --all و --state=.

أُضيف في الإصدار 252.

list-paths [PATTERN...]

يسرد وحدات المسار الموجودة حاليًا في الذاكرة، مرتبة حسب المسار. إذا حُدد 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...]

يسرد وحدات المقابس الموجودة حاليًا في الذاكرة، مرتبة حسب عنوان الاستماع. إذا حُدد 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...]

يسرد وحدات المؤقت الموجودة حاليًا في الذاكرة، مرتبة حسب وقت انقضائها التالي. إذا حُدد 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...]

يتحقق مما إذا كانت أي من الوحدات المحددة في حالة "failed" (فشل). إذا لم تُحدد أي وحدة، فإنه يتحقق مما إذا كان هناك أي وحدات فاشلة أو دورات ترتيب، وهو ما يقابل حالة "degraded" (متدهور) التي يعيدها is-system-running. يعيد رمز خروج 0 إذا فشلت واحدة على الأقل، وغير ذلك بخلاف ذلك. ما لم يُحدد --quiet، سيطبع هذا أيضًا حالة الوحدة أو النظام الحالية إلى المخرج القياسي.

أُضيف في الإصدارة 197.

status [PATTERN...|PID...]]

يعرض معلومات حالة وقت التشغيل حول النظام بأكمله أو حول وحدة واحدة أو أكثر متبوعة بأحدث بيانات السجل من المجلة. إذا لم تُحدد وسيطات موضعية، ولم يُعطَ مرشح وحدات باستخدام --type= أو --state= أو --failed، يُعرض وضع النظام بأكمله. إذا دمج مع --all، يتبع ذلك بحالة كافة الوحدات. إذا حُددت وسيطات موضعية، تُعامل كل وسيطة إما كاسم وحدة لعرضها، أو كنمط glob لعرض الوحدات التي تطابق أسماؤها ذلك النمط، أو PID لعرض الوحدة التي تحتوي على ذلك الـ PID. عند استخدام --type= أو --state= أو --failed، تُصفى الوحدات إضافيًا حسب TYPE وحالة ACTIVE.

الغرض من هذه الوظيفة هو إنتاج مخرجات قابلة للقراءة البشرية. إذا كنت تبحث عن مخرجات يمكن للحاسوب تحليلها، فاستخدم show بدلاً من ذلك. مبدئيًا، تعرض هذه الوظيفة 10 أسطر فقط من المخرجات وتختصر الأسطر لتناسب نافذة الطرفية. يمكن تغيير ذلك باستخدام --lines و --full، انظر أعلاه. بالإضافة إلى ذلك، يستخدم journalctl --unit=NAME أو journalctl --user-unit=NAME مرشحًا مشابهًا للرسائل وقد يكون أكثر ملاءمة.

لاحظ أن هذه العملية تعرض حالة وقت التشغيل فقط، أي معلومات حول الاستدعاء الحالي للوحدة (إذا كانت تعمل) أو أحدث استدعاء (إذا لم تعد تعمل، ولم تُحرر من الذاكرة). يمكن استرجاع المعلومات حول الاستدعاءات السابقة، أو الاستدعاءات من عمليات تمهيد النظام السابقة، أو الاستدعاءات السابقة التي حُررت بالفعل من الذاكرة عبر journalctl --unit=.

يحمل systemd الوحدات ضمنيًا حسب الضرورة، لذا فإن مجرد تشغيل status سيحاول تحميل ملف. وبالتالي فإن الأمر ليس مفيدًا لتحديد ما إذا كان هناك شيء محمل بالفعل أم لا. قد تُفرغ الوحدات أيضًا بسرعة بعد اكتمال العملية إذا لم يكن هناك سبب للاحتفاظ بها في الذاكرة بعد ذلك.

مثال 1. مثال لمخرجات من systemctl status

$ systemctl status bluetooth
● bluetooth.service - Bluetooth service

Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: enabled)
Active: active (running) since Wed 2017-01-04 13:54:04 EST; 1 weeks 0 days ago
Docs: man:bluetoothd(8)
Main PID: 930 (bluetoothd)
Status: "Running"
Tasks: 1
Memory: 648.0K
CPU: 435ms
CGroup: /system.slice/bluetooth.service
└─930 /usr/lib/bluetooth/bluetoothd Jan 12 10:46:45 example.com bluetoothd[8900]: Not enough free handles to register service Jan 12 10:46:45 example.com bluetoothd[8900]: Current Time Service could not be registered Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output error (5)

تستخدم النقطة ("●") الألوان في الطرفيات المدعومة لتلخيص حالة الوحدة في لمحة. بالإضافة إلى لونها، يختلف شكلها وفقًا لحالتها: "inactive" أو "maintenance" عبارة عن دائرة بيضاء ("○")، و "active" عبارة عن نقطة خضراء ("●")، و "deactivating" عبارة عن نقطة بيضاء، و "failed" أو "error" عبارة عن صليب أحمر ("×")، و "reloading" أو "refreshing" عبارة عن سهم دائري أخضر باتجاه عقارب الساعة ("↻").

سيعرض سطر ":Loaded" في المخرجات "loaded" إذا حُمّلت الوحدة في الذاكرة. تشمل القيم الممكنة الأخرى لـ ":Loaded": "error" إذا كانت هناك مشكلة في تحميلها، و "not-found" إذا لم يُعثر على ملف وحدة لهذه الوحدة، و "bad-setting" إذا لم يمكن تحليل إعداد ملف وحدة ضروري، و "masked" إذا حُجب ملف الوحدة. إلى جانب عرض المسار إلى ملف الوحدة، سيعرض هذا السطر أيضًا حالة التمكين. تُدرج الوحدات الممكّنة في شبكة التبعية بين الوحدات، وبالتالي تُبدأ عند التمهيد أو عبر شكل آخر من أشكال التنشيط. انظر الجدول الكامل لحالات التمكين الممكنة — بما في ذلك تعريف "masked" — في توثيق أمر is-enabled.

يعرض سطر ":Active" الحالة النشطة. القيمة عادة ما تكون "active" أو "inactive". قد تعني النشطة أنها بدأت، أو ارتبطت، أو وُصلت، إلخ حسب نوع الوحدة. يمكن أن تكون الوحدة أيضًا في طور تغيير الحالات، حيث تبلغ عن حالة "activating" أو "deactivating". تُدخل حالة "failed" خاصة عندما تفشل الخدمة بطريقة ما، مثل الانهيار، أو الخروج برمز خطأ، أو انتهاء المهلة. إذا دُخلت حالة الفشل، فسيُسجل السبب للرجوع إليه لاحقًا.

show [PATTERN...|JOB...]

يعرض خصائص وحدة واحدة أو أكثر، أو المهام، أو المدير نفسه. إذا لم تُحدد وسيطة، فستُعرض خصائص المدير. إذا حُدد اسم وحدة، تُعرض خصائص الوحدة، وإذا حُدد معرف مهمة، تُعرض خصائص المهمة. مبدئيًا، تُكتم الخصائص الفارغة. استخدم --all لعرضها أيضًا. لتحديد خصائص معينة لعرضها، استخدم --property=. يهدف هذا الأمر إلى استخدامه عندما تكون المخرجات القابلة للتحليل الحاسوبي مطلوبة. استخدم status إذا كنت تبحث عن مخرجات منسقة قابلة للقراءة البشرية.

العديد من الخصائص التي يعرضها systemctl show ترتبط مباشرة بإعدادات تهيئة مدير النظام والخدمة وملفات وحداته. لاحظ أن الخصائص التي يعرضها الأمر هي بشكل عام نسخ منخفضة المستوى ومعيرة من إعدادات التهيئة الأصلية وتكشف عن حالة وقت التشغيل بالإضافة إلى التهيئة. على سبيل المثال، تتضمن الخصائص المعروضة لوحدات الخدمة معرف العملية الرئيس الحالي للخدمة كـ "MainPID" (وهي حالة وقت تشغيل)، وتُكشف إعدادات الوقت دائمًا كخصائص تنتهي باللاحقة "...USec" حتى لو كانت خيارات التهيئة المطابقة تنتهي بـ "...Sec"، لأن الميكروثانية هي وحدة الوقت المعيرة المستخدمة داخليًا بواسطة مدير النظام والخدمة.

لمزيد من التفاصيل حول العديد من هذه الخصائص، انظر توثيق واجهة D-Bus التي تدعم هذه الخصائص، انظر org.freedesktop.systemd1(5).

cat PATTERN...

يعرض الملفات الداعمة لوحدة واحدة أو أكثر. يطبع الـ "fragment" (القطعة) والـ "drop-ins" (ملفات المصدر) للوحدات. يسبق كل ملف تعليق يتضمن اسم الملف. لاحظ أن هذا يعرض محتويات الملفات الداعمة على القرص، والتي قد لا تطابق فهم مدير النظام لهذه الوحدات إذا حُدثت أي ملفات وحدة على القرص ولم يُصدر أمر daemon-reload منذ ذلك الحين.

أُضيف في الإصدارة 209.

help PATTERN...|PID...

يعرض صفحات الدليل لوحدة واحدة أو أكثر، إذا كانت متوفرة. إذا أُعطي PID، تُعرض صفحات الدليل للوحدة التي تنتمي إليها العملية.

أُضيف في الإصدار 185.

list-dependencies [UNIT...]

يعرض الوحدات التي تطلبها أو تريدها الوحدات المحددة. يسرد هذا الوحدات تكراريًا متبعًا اعتماديات Requires= و Requisite= و Wants= و ConsistsOf= و BindsTo= و Upholds=. إذا لم تُحدد أي وحدات، يُفترض استخدام default.target.

تُرشح الوحدات المعروضة إضافيًا بواسطة --type= و --state= إذا حُددت تلك الخيارات. لاحظ أننا لن نتمكن من استخدام بنية شجرية في هذه الحالة، لذا يُفترض استخدام --plain.

مبدئيًا، تُوسع وحدات الأهداف (targets) فقط تكراريًا. عند تمرير --all، تُوسع جميع الوحدات الأخرى تكراريًا أيضًا.

يمكن استخدام الخيارات --reverse و --after و --before لتغيير أنواع الاعتماديات المعروضة.

لاحظ أن هذا الأمر يسرد فقط الوحدات المحملة حاليًا في الذاكرة بواسطة مدير الخدمة. وبوجه خاص، لا يصلح هذا الأمر للحصول على قائمة شاملة لجميع الاعتماديات العكسية لوحدة معينة، لأنه لن يسرد الاعتماديات المصرح بها من قبل وحدات غير محملة حاليًا.

أُضيف في الإصدارة 198.

start PATTERN...

بدء (تنشيط) وحدة واحدة أو أكثر محددة على سطر الأوامر.

لاحظ أن أنماط مطابقة الوحدات (glob) تتوسع إلى أسماء الوحدات الموجودة حاليًا في الذاكرة. الوحدات غير النشطة والتي ليست في حالة فشل لا تكون عادة في الذاكرة، ولن تطابقها أي أنماط. بالإضافة إلى ذلك، في حالة الوحدات المستنسخة، غالبًا ما يكون 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 في خادم الويب، وليس ملف وحدة systemd المسمى apache.service.

يجب عدم الخلط بين هذا الأمر وأمر daemon-reload.

restart PATTERN...

إيقاف ثم بدء وحدة واحدة أو أكثر محددة على سطر الأوامر. إذا لم تكن الوحدات تعمل بعد، فستُبدأ.

لاحظ أن إعادة تشغيل وحدة بهذا الأمر لا يفرغ بالضرورة جميع موارد الوحدة قبل بدئها مرة أخرى. على سبيل المثال، ستظل مرافق تخزين واصف الملفات الخاصة بالخدمة (انظر FileDescriptorStoreMax= في systemd.service(5)) سليمة طالما أن للوحدة مهمة معلقة، ولا تُمسح إلا عندما تُوقف الوحدة تمامًا ولا تتبقى أي مهام معلقة. إذا كان القصد هو إفراغ مخزن واصفات الملفات أيضًا خلال عملية إعادة التشغيل، فيجب إصدار أمر systemctl stop صريح يتبعه systemctl start.

try-restart PATTERN...

إيقاف ثم بدء وحدة واحدة أو أكثر محددة على سطر الأوامر إذا كانت الوحدات تعمل. لا يفعل هذا شيئًا إذا لم تكن الوحدات تعمل.

enqueue-marked

إدراج مهام بدء/إيقاف/إعادة تشغيل/إعادة تحميل في الطابور لجميع الوحدات التي عُينت لها علامات "needs-*" المقابلة. عندما لا تدعم وحدة موسومة لإعادة التحميل هذه العملية، ستُدرج إعادة التشغيل في الطابور. يمكن ضبط هذه الخصائص باستخدام set-property Markers=....

ما لم يُستخدم --no-block، سينتظر systemctl انتهاء المهام المدرجة في الطابور.

أُضيف في الإصدار 260.

reload-or-restart PATTERN...

إعادة تحميل وحدة واحدة أو أكثر إذا كانت تدعم ذلك. إذا لم تكن تدعم، تُوقف ثم تُبدأ بدلًا من ذلك. إذا لم تكن الوحدات تعمل بعد، فستُبدأ.

عند استخدامه مع --marked، فإنه يعتبر اسمًا مستعارًا مهجورًا لـ enqueue-marked.

try-reload-or-restart PATTERN...

إعادة تحميل وحدة واحدة أو أكثر إذا كانت تدعم ذلك. إذا لم تكن تدعم، تُوقف ثم تُبدأ بدلًا من ذلك. لا يفعل هذا شيئًا إذا لم تكن الوحدات تعمل.

أُضيف في الإصدارة 229.

isolate UNIT

بدء الوحدة المحددة على سطر الأوامر واعتمادياتها وإيقاف جميع الوحدات الأخرى، ما لم تكن تحتوي على IgnoreOnIsolate=yes (انظر systemd.unit(5)). إذا أُعطي اسم وحدة بدون امتداد، فسيُفترض الامتداد ".target".

هذا الأمر خطير، لأنه سيوقف فورًا العمليات غير المفعلة في الهدف الجديد، بما في ذلك ربما البيئة الرسومية أو الطرفية التي تستخدمها حاليًا.

لاحظ أن هذه العملية مسموح بها فقط في الوحدات التي فُعل فيها AllowIsolate=. انظر systemd.unit(5) للتفاصيل.

kill PATTERN...

إرسال إشارة عملية يونكس إلى عملية واحدة أو أكثر من عمليات الوحدة. استخدم --kill-whom= لاختيار العملية التي ستُرسل الإشارة إليها. استخدم --signal= لاختيار الإشارة المراد إرسالها. اجمعه مع --kill-value= لإدراج إشارة POSIX في الوقت الحقيقي (Realtime) مع قيمة مرتبطة بها.

clean PATTERN...

إزالة الإعدادات، أو الحالة، أو الخبيئة، أو السجلات، أو وقت التشغيل، أو بيانات مخزن واصفات الملفات للوحدات المحددة. استخدم --what= لاختيار نوع المورد المراد إزالته. بالنسبة لوحدات الخدمة، يمكن استخدام هذا لإزالة الأدلة المضبوطة بواسطة ConfigurationDirectory= و StateDirectory= و CacheDirectory= و LogsDirectory= و RuntimeDirectory=، انظر systemd.exec(5) للتفاصيل. يمكن استخدامه أيضًا لمسح مخزن واصفات الملفات كما هو مفعل عبر FileDescriptorStoreMax=، انظر systemd.service(5) للتفاصيل. بالنسبة لوحدات الموقت، يمكن استخدامه لمسح بيانات الطابع الزمني المستمرة إذا استُخدم Persistent= واختُير --what=state، انظر systemd.timer(5). ينطبق هذا الأمر فقط على الوحدات التي تستخدم أيًا من هذه الإعدادات. إذا لم يُحدد --what=، تُزال بيانات الخبيئة ووقت التشغيل بالإضافة إلى مخزن واصفات الملفات (بما أن هذه الأنواع الثلاثة من الموارد زائدة عن الحاجة عمومًا ويمكن إعادة إنتاجها عند الاستدعاء التالي للوحدة). يمكن الفصل بين القيم المتعددة بفاصلات. لاحظ أن الوحدات المحددة يجب أن تكون موقوفة لاستدعاء هذه العملية.

جدول 2.  القيم الممكنة لـ --what=

القيمة إعداد الوحدة
"وقت التشغيل" 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]

يوصل وصلاً رابضًا (bind-mount) ملفًا أو دليلاً من المضيف في مساحة أسماء الوصل الخاصة بالوحدة المحددة. وسيط المسار الأول هو الملف أو الدليل المصدر على المضيف، ووسيط المسار الثاني هو الملف أو الدليل الوجهة في مساحة أسماء وصل الوحدة. عند حذف الأخير، يكون مسار الوجهة في مساحة أسماء وصل الوحدة هو نفسه مسار المصدر على المضيف. عند دمجه مع مفتاح --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 المسمى destination.)

أُضيف في الإصدار 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 المسمى destination.)

أُضيف في الإصدار 247.

reset-failed [PATTERN...]

تصفير حالة "failed" (فشل) للوحدات المحددة، أو إذا لم يُمرر اسم وحدة، تُصّفر حالة جميع الوحدات. عندما تخفق وحدة بطريقة ما (أي خروج العملية برمز خطأ غير صفري، أو انتهائها بشكل غير طبيعي أو انتهاء مهلتها)، فإنها ستدخل آليًا في حالة "failed" ويُسجل رمز خروجها وحالتها ليعاينها المسؤول حتى تُوقف الخدمة أو يُعاد تشغيلها أو تُصّفر بهذا الأمر.

بالإضافة إلى إعادة ضبط حالة «الإخفاق» (failed) للوحدة، فإنه يعيد ضبط خصائص أخرى متنوعة لكل وحدة: حيث يُصفّر عداد حد معدل البدء لجميع أنواع الوحدات، وكذلك عداد إعادة التشغيل لوحدات الخدمة. وبناءً على ذلك، إذا بُلغ حد البدء للوحدة (كما هو مضبوط في StartLimitIntervalSec=/StartLimitBurst=) ورفضت الوحدة البدء مرة أخرى، فاستخدم هذا الأمر لجعلها قابلة للبدء مجددًا.

whoami [PID...]

يُرجع الوحدات التي تنتمي إليها العمليات المشار إليها بواسطة معرفات العمليات (PIDs) المعطاة (وحدة واحدة لكل سطر). إذا لم يُحدد أي معرف عملية، فإنه يُرجع الوحدة التي استُدعي فيها الأمر systemctl.

أُضيف في الإصدار 254.

أوامر ملف الوحدة

list-unit-files [PATTERN...]

يسرد ملفات الوحدات المثبتة على النظام، مدمجة مع حالة تفعيلها (كما يُبلغ عنها عبر is-enabled). إذا حُدد نمط PATTERN واحد أو أكثر، فستُعرض فقط ملفات الوحدات التي تطابق أسماؤها أحد هذه الأنماط (الأنماط التي تطابق مسارات نظام ملفات الوحدة غير مدعومة).

على عكس list-units، سيسرد هذا الأمر وحدات القوالب بالإضافة إلى الوحدات التي أُنشئت نماذجها صراحةً.

أُضيف في الإصدار 233.

enable UNIT..., enable PATH...

يُفعل وحدة واحدة أو أكثر أو نماذج الوحدات. سيؤدي هذا إلى إنشاء مجموعة من الروابط الرمزية، كما هو مرموز في أقسام [Install] لملفات الوحدات المشار إليها. بعد إنشاء الروابط الرمزية، يُعاد تحميل تكوين مدير النظام (بطريقة مكافئة لـ daemon-reload)، لضمان أخذ التغييرات في الحسبان على الفور. لاحظ أن هذا لا يؤدي إلى بدء تشغيل أي من الوحدات التي يتم تفعيلها. إذا كان ذلك مطلوبًا، فاجمع بين هذا الأمر والمبدل --now، أو استدعِ start بوسطاء مناسبة لاحقًا. لاحظ أنه في حالة تفعيل نموذج وحدة (أي تفعيل وحدات على هيئة foo@bar.service)، تُنشأ روابط رمزية تسمى بنفس أسماء النماذج في دليل تكوين الوحدة، ومع ذلك فإنها تشير إلى ملف وحدة القالب الوحيد الذي اشتُقت منه.

يتوقع هذا الأمر إما أسماء وحدات صالحة (وفي هذه الحالة تُفتش أدلة ملفات الوحدات المتنوعة آليًا عن ملفات وحدات بأسماء مناسبة)، أو مسارات مطلقة لملفات الوحدات (وفي هذه الحالة تُقرأ هذه الملفات مباشرة). إذا كان ملف وحدة محدد يقع خارج أدلة ملفات الوحدات المعتادة، فسيُنشأ رابط رمزي إضافي، يربطه بمسار تكوين الوحدة، مما يضمن العثور عليه عند طلبه بواسطة أوامر مثل 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= (بشكل دائم في /etc/systemd/system/، أو بشكل عابر في /run/systemd/system/). 0
"enabled-runtime (مفعل لوقت التشغيل)"
"linked (مرتبط)" أُتيح من خلال رابط رمزي واحد أو أكثر لملف الوحدة (بشكل دائم في /etc/systemd/system/ أو بشكل عابر في /run/systemd/system/)، رغم أن ملف الوحدة قد يقع خارج مسار بحث ملفات الوحدات. > 0
"linked-runtime (مرتبط لوقت التشغيل)"
"alias" الاسم هو اسم مستعار (رابط رمزي لملف وحدة آخر). 0
"masked (محجوب)" معطل تمامًا، بحيث تفشل أي عملية بدء عليه (بشكل دائم في /etc/systemd/system/ أو بشكل عابر في /run/systemd/systemd/). > 0
"masked-runtime (محجوب لوقت التشغيل)"
"static (ساكن)" ملف الوحدة غير مفعل، ولا يحتوي على أحكام للتفعيل في قسم [Install] لملف الوحدة. 0
"indirect (غير مباشر)" ملف الوحدة نفسه غير مفعل، ولكن لديه إعداد Also= غير فارغ في قسم [Install] لملف الوحدة، حيث يسرد ملفات وحدات أخرى قد تكون مفعلة، أو لديه اسم مستعار تحت اسم مختلف من خلال رابط رمزي غير محدد في Also=. بالنسبة لملفات وحدات القوالب، يتم تفعيل نموذج مختلف عن النموذج المحدد في DefaultInstance=. 0
"disabled (معطل)" ملف الوحدة غير مفعل، ولكنه يحتوي على قسم [Install] مع تعليمات التثبيت. > 0
"generated (مُولد)" وُلد ملف الوحدة ديناميكيًا عبر أداة توليد. راجع systemd.generator(7). قد لا تُفعل ملفات الوحدات المولدة، حيث تُفعل ضمنيًا بواسطة المولد الخاص بها. 0
"transient (عابر)" أُنشئ ملف الوحدة ديناميكيًا باستخدام واجهة برمجة تطبيقات وقت التشغيل. الوحدات العابرة قد لا تُفعل. 0
"bad (سيئ)" ملف الوحدة غير صالح أو حدث خطأ آخر. لاحظ أن is-enabled لن يُرجع هذه الحالة فعليًا، بل سيطبع رسالة خطأ بدلًا من ذلك. ومع ذلك، قد تظهر في قائمة ملفات الوحدات التي يطبعها list-unit-files. > 0
"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...

يعيد ملف وحدة واحد أو أكثر إلى نسخ المورد الخاصة بها. يزيل هذا الأمر ملفات تكوين drop-in التي تعدل الوحدات المحددة، بالإضافة إلى أي ملف وحدة كونه المستخدم ويتخطى ملف وحدة مطابقًا وفره المورد. وتحديدًا، بالنسبة للوحدة "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...

يحرر أو يستبدل قصاصة drop-in أو ملف الوحدة الرئيس، لتوسيع أو تخطي تعريف الوحدة المحددة.

اعتمادًا على ما إذا كان قد حُدد --system (المبدئي) أو --user أو --global، سيعمل هذا الأمر على ملفات وحدات النظام، أو ملفات الوحدات للمستخدم المستدعِي، أو ملفات الوحدات المشتركة بين جميع المستخدمين.

يُستدعى المحرر (انظر قسم «البيئة» أدناه) على ملفات مؤقتة ستُكتب في الموقع الحقيقي إذا خرج المحرر بنجاح. بعد الانتهاء من التحرير، يُعاد تحميل التكوين، وهو ما يعادل systemctl daemon-reload --system أو systemctl daemon-reload --user. بالنسبة لـ edit --global، لا يتم إعادة التحميل وستدخل التعديلات حيز التنفيذ فقط في عمليات تسجيل الدخول اللاحقة (أو بعد طلب إعادة التحميل بطريقة مختلفة).

إذا حُدد --full، فسيُنشأ أو يحرر بديل لملف الوحدة الرئيس. خلاف ذلك، سيُنشأ أو يحرر ملف drop-in.

إذا حُدد --drop-in=، فسيُستخدم اسم ملف drop-in المعطى بدلًا من override.conf المبدئي.

يجب أن تكون الوحدة موجودة، أي يجب أن يكون ملف وحدتها الرئيس حاضرًا. إذا حُدد --force، فسيُتجاهل هذا المتطلب وقد تُنشأ وحدة جديدة (مع --full)، أو قد تُنشأ قصاصة drop-in لوحدة غير موجودة.

إذا حُدد --runtime، فستُجرى التغييرات مؤقتًا في /run/ وستُفقد عند إعادة الإقلاع التالية.

إذا حُدد --stdin، فستُقرأ المحتويات الجديدة من الدخل القياسي. في هذا الوضع، تُطرح المحتويات القديمة للملف.

إذا كان الملف المؤقت فارغًا عند الخروج، فسيُلغى تعديل الوحدة ذات الصلة.

لاحظ أن هذا الأمر لا يمكن استخدامه لتحرير الوحدات عن بُعد، وأنه لا يمكنك تحرير الوحدات الموجودة في /etc/ تحريرًا مؤقتًا، لأنها تأخذ الأولوية على /run/.

أُضيف في الإصدارة 218.

get-default

يُرجع الهدف المبدئي للإقلاع إليه. يُرجع هذا اسم وحدة الهدف الذي يُشير إليه الاسم المستعار (وصلة رمزية) لـ default.target.

أُضيف في الإصدارة 205.

set-default TARGET

يضبط الهدف المبدئي للإقلاع إليه. يقوم هذا بضبط (وصلة رمزية) الاسم المستعار default.target ليرتبط بوحدة الهدف المعطاة.

أُضيف في الإصدارة 205.

أوامر الآلة

list-machines [PATTERN...]

يسرد المضيف وجميع الحاويات المحلية التي تعمل حاليًا مع حالتها. إذا حُدد PATTERN واحد أو أكثر، فستُعرض الحاويات التي تطابق أحدها فقط.

أُضيف في الإصدارة 212.

أوامر المهام

list-jobs [PATTERN...]

يسرد المهام التي هي قيد التنفيذ حاليًا. إذا حُدد PATTERN واحد أو أكثر، فستُعرض مهام الوحدات التي تطابق أحدها فقط.

عند استخدامه مع --after أو --before، تُعزز القائمة بمعلومات حول المهمة الأخرى التي تنتظرها كل مهمة، والمهام الأخرى التي تنتظرها، انظر أعلاه.

أُضيف في الإصدار 233.

cancel [JOB...]

يُلغي مهمة واحدة أو أكثر محددة على سطر الأوامر بواسطة معرفات المهام الرقمية الخاصة بها. إذا لم يُحدد معرف مهمة، فستُلغى جميع المهام المعلقة.

أُضيف في الإصدار 233.

أوامر البيئة

يدعم systemd كتلة بيئة تُمرر إلى العمليات التي يولدها المدير. يمكن أن تحتوي أسماء المتغيرات على أحرف ASCII وأرقام وشرطة سفلية. لا يمكن أن تكون أسماء المتغيرات فارغة أو تبدأ برقم. في قيم المتغيرات، يُسمح بمعظم المحارف، ولكن يجب أن يكون التسلسل بالكامل بصيغة UTF-8 صالحة. (لاحظ أن محارف التحكم مثل سطر جديد (NL)، أو علامة التبويب (TAB)، أو محرف الهروب (ESCتعد ASCII صالحة وبالتالي UTF-8 صالحة). يقتصر الطول الإجمالي لكتلة البيئة على قيمة _SC_ARG_MAX المحددة بواسطة sysconf(3).

show-environment

يفرغ كتلة بيئة مدير systemd. هذه هي كتلة البيئة التي تُمرر إلى جميع العمليات التي يولدها المدير. ستُفرغ كتلة البيئة في نموذج مباشر مناسب لإدراجها في معظم الصدفات. إذا لم توجد محارف خاصة أو مسافات بيضاء في قيم المتغيرات، فلن يُجرى أي هروب، وتكون التعيينات بصيغة "VARIABLE=value". إذا وجدت مسافات بيضاء أو محارف لها معنى خاص للصدفة، فيُستخدم هروب علامة-الدولار-المفردة، وتكون التعيينات بصيغة "VARIABLE=$'value'". هذا التنسيق معروف بدعمه من قبل bash(1) و zsh(1) و ksh(1) و ash(1) التابع لـ busybox(1)، ولكن ليس dash(1) أو fish(1).

لاحظ أن هذا يعرض الكتلة الفعالة، أي مزيج متغيرات البيئة التي ضُبطت عبر ملفات الإعداد ومولدات البيئة وعبر IPC (أي عبر set-environment الموضح أدناه). في اللحظة التي تُفرع فيها عملية الوحدة، ستُدمج كتلة البيئة المجمعة هذه مع متغيرات البيئة الخاصة بالوحدة، والتي لا تظهر في هذا الأمر.

set-environment VARIABLE=VALUE...

يضبط متغير بيئة واحد أو أكثر لمدير الخدمة، كما هو محدد في سطر الأوامر. سيفشل هذا الأمر إذا كانت أسماء المتغيرات وقيمها لا تتوافق مع القواعد المذكورة أعلاه.

لاحظ أن هذا يعمل على كتلة بيئة منفصلة عن كتلة البيئة التي ضُبطت من إعدادات مدير الخدمة ومولدات البيئة. كلما استُدعيت عملية، تُدمج الكتلتان (مع دمج أي متغيرات بيئة خاصة بالخدمة أيضًا)، وتُمرر إليها. سيعرض الفعل show-environment مزيج الكتل، انظر أعلاه.

أُضيف في الإصدار 233.

unset-environment VARIABLE...

يلغي ضبط متغير بيئة واحد أو أكثر لمدير systemd. إذا حُدد اسم المتغير فقط، فسيُزال بغض النظر عن قيمته. إذا حُدد متغير وقيمة، فسيُزال المتغير فقط إذا كان يحمل القيمة المحددة.

لاحظ أن هذا يعمل على كتلة بيئة منفصلة عن كتلة البيئة التي ضُبطت من إعدادات مدير الخدمة ومولدات البيئة. كلما استُدعيت عملية، تُدمج الكتلتان (مع دمج أي متغيرات بيئة خاصة بالخدمة أيضًا)، وتُمرر إليها. سيعرض الفعل show-environment مزيج الكتل، انظر أعلاه. لاحظ أن هذا يعني أنه لا يمكن استخدام هذا الأمر لإلغاء ضبط متغيرات البيئة المعرفة في ملفات إعداد مدير الخدمة أو عبر المولدات.

أُضيف في الإصدار 233.

import-environment VARIABLE...

يستورد جميع أو واحد أو أكثر من متغيرات البيئة المضبوطة على العميل إلى كتلة بيئة مدير systemd. إذا مُررت قائمة بأسماء متغيرات البيئة، فستُستورد قيم جهة العميل إلى كتلة بيئة المدير. إذا كانت أي أسماء غير صالحة لمتغيرات البيئة أو كانت لها قيم غير صالحة وفقًا للقواعد الموضحة أعلاه، فسيُرفع خطأ. إذا لم تُمرر أي وسائط، فستُستورد كتلة البيئة بالكامل الموروثة بواسطة عملية systemctl. في هذا الوضع، تُتجاهل أي متغيرات بيئة موروثة غير صالحة بصمت.

استيراد كتلة البيئة الموروثة بالكامل (استدعاء هذا الأمر بدون أي وسائط) مهجور. ستضبط الصدفة العشرات من المتغيرات التي لا معنى لها إلا محليًا والمقصود بها فقط العمليات المنحدرة من الصدفة. مثل هذه المتغيرات في كتلة البيئة العامة تكون مربكة للعمليات الأخرى.

أُضيف في الإصدارة 209.

أوامر حالة المدير

daemon-reload

يعيد تحميل إعدادات مدير systemd. سيؤدي هذا إلى إعادة تشغيل جميع المولدات (انظر systemd.generator(7))، وإعادة تحميل جميع ملفات الوحدات، وإعادة إنشاء شجرة الاعتمادية بالكامل. أثناء إعادة تحميل العفريت، ستظل جميع المقابس التي يستمع إليها systemd نيابة عن إعدادات المستخدم متاحة.

لا ينبغي الخلط بين هذا الأمر وأمر reload.

daemon-reexec

يعيد تنفيذ مدير systemd. سيؤدي هذا إلى تسلسل حالة المدير، وإعادة تنفيذ العملية وإلغاء تسلسل الحالة مرة أخرى. هذا الأمر قليل الفائدة باستثناء أغراض التنقِيح وترقيات الحزم. أحيانًا، قد يكون مفيدًا كبديل ثقيل لـ daemon-reload. أثناء إعادة تنفيذ العفريت، ستظل جميع المقابس التي يستمع إليها systemd نيابة عن إعدادات المستخدم متاحة.

log-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 بداية الإقلاع، قبل الوصول لـ basic.target أو الدخول في حالة maintenance. > 0
starting نهاية الإقلاع، قبل أن يصبح طابور المهام خاملاً للمرة الأولى، أو الوصول لأحد أهداف الإنقاذ (rescue targets). > 0
running النظام يعمل بالكامل وبشكل سليم. 0
degraded النظام يعمل ولكن وحدة واحدة أو أكثر فشلت. > 0
maintenance هدف الإنقاذ (rescue) أو الطوارئ (emergency) نشط. > 0
stopping المدير قيد إيقاف التشغيل. > 0
offline المدير لا يعمل. تحديدًا، هذه هي الحالة التشغيلية إذا كان هناك برنامج غير متوافق يعمل كمدير للنظام (PID 1). > 0
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، ولكنه يطبع أيضًا رسالة حائط (wall message) لجميع المستخدمين. هذا الأمر غير متزامن؛ سيعود بعد إدراج عملية التعليق في الطابور، دون انتظار اكتمالها. لاحظ أن هذه العملية ستقوم ببساطة بتعليق نواة نظام التشغيل بعد إيقاف التشغيل، مع ترك العتاد في وضع التشغيل. استخدم 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(2).

الخيارات --boot-loader-entry= و --boot-loader-menu= و --firmware-setup يمكن استخدامها لتحديد ما يجب فعله بعد إعادة الإقلاع. انظر أوصاف هذه الخيارات للمزيد من التفاصيل.

يحترم هذا الأمر --force و --when= بطريقة مشابهة لـ halt.

إذا حُملت نواة جديدة عبر kexec --load، فسيُجرى kexec بدلاً من إعادة الإقلاع، ما لم يُضبط "SYSTEMCTL_SKIP_AUTO_KEXEC=1". إذا أُعد نظام ملفات جذر جديد على "/run/nextroot/"، فسيُجرى soft-reboot بدلاً من إعادة الإقلاع، ما لم يُضبط "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[1]، ويُحمل مدخل الإقلاع المبدئي. لكي تنجح هذه الخطوة، يجب أن يستخدم النظام UEFI ويجب أن تُضبط مداخل محمل الإقلاع بشكل مناسب. يمكن استخدام bootctl list لسرد مداخل الإقلاع، انظر bootctl(1).

هذا الأمر غير متزامن؛ سيعود بعد إدراج عملية إعادة الإقلاع في الطابور، دون انتظار اكتمالها.

يحترم هذا الأمر --force و --when= بطريقة مشابهة لـ halt.

إذا حُملت نواة جديدة عبر kexec --load، فسيُجرى kexec عند استدعاء reboot، ما لم يُضبط "SYSTEMCTL_SKIP_AUTO_KEXEC=1".

soft-reboot

إيقاف تشغيل وإعادة إقلاع مساحة المستخدم (userspace). هذا يعادل systemctl start soft-reboot.target --job-mode=replace-irreversibly --no-block. هذا الأمر غير متزامن؛ سيعود بعد إدراج عملية إعادة الإقلاع في الطابور، دون انتظار اكتمالها.

يحترم هذا الأمر --force و --when= بطريقة مشابهة لـ halt.

هذه العملية تعيد إقلاع مساحة المستخدم فقط، مع ترك النواة تعمل. انظر systemd-soft-reboot.service(8) للتفاصيل.

إذا أُعد نظام ملفات جذر جديد على "/run/nextroot/"، فسيُجرى soft-reboot عند استدعاء reboot، ما لم يُضبط "SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1".

أُضيف في الإصدار 254.

exit [EXIT_CODE]

يطلب من مدير الخدمة الخروج. هذا مدعوم فقط لمديري خدمات المستخدم (أي بالاقتران مع خيار --user) أو في الحاويات، ويعادل poweroff بخلاف ذلك. هذا الأمر غير متزامن؛ سيعود بعد إدراج عملية الخروج في الطابور، دون انتظار اكتمالها.

سيخرج مدير الخدمة برمز الخروج المحدد، إذا مُرر EXIT_CODE.

أُضيف في الإصدارة 227.

switch-root [ROOT [INIT]]

ينتقل إلى دليل جذر مختلف وينفذ عملية مدير نظام جديدة تحته. هذا مخصص للاستخدام في initrd، وسينتقل من عملية مدير نظام initrd (المعروفة باسم عملية "init"، PID 1) إلى عملية مدير النظام الرئيسة التي تُحمل من نظام ملفات الجذر المضيف الفعلي. يأخذ هذا الاستدعاء وسيطتين: الدليل الذي سيصبح دليل الجذر الجديد، والمسار إلى ثنائي مدير النظام الجديد تحته للتنفيذ كـ PID 1. إذا حُذف كلاهما أو كان الأول سلسلة فارغة فإنه يتحول مبدئيًا إلى /sysroot/. إذا حُذف الأخير أو كان سلسلة فارغة، فسيُبحث آليًا عن ثنائي systemd ويُستخدم كمدير للخدمة. إذا حُذف مسار مدير النظام، أو كان مساويًا للسلسلة الفارغة أو مطابقًا للمسار إلى ثنائي systemd، فستُمرر حالة عملية مدير نظام initrd إلى مدير النظام الرئيس، مما يسمح لاحقًا باستكشاف حالة الخدمات المعنية في مرحلة إقلاع initrd.

أُضيف في الإصدارة 209.

sleep

يضع النظام في حالة النوم، من خلال suspend، أو hibernate، أو hybrid-sleep، أو suspend-then-hibernate. تُختار عملية النوم المستخدمة آليًا بواسطة systemd-logind.service(8). مبدئيًا، يُستخدم suspend-then-hibernate، ويتراجع إلى suspend ثم hibernate إذا لم يكن مدعومًا. راجع إعداد 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

في الحالة الثانية، ستُطابق أنماط الصدفة (globs) مع الأسماء الرئيسة لجميع الوحدات الموجودة حاليًا في الذاكرة؛ وستُعامل أسماء الوحدات الحرفية، بلاحقة أو بدونها، كما في الحالة الأولى. وهذا يعني أن أسماء الوحدات الحرفية تشير دائمًا إلى وحدة واحدة بالضبط، لكن الأنماط قد تطابق صفر من الوحدات ولا يُعد هذا خطأ.

تستخدم أنماط glob الدالة fnmatch(3)، لذا تُستخدم قواعد مطابقة أنماط الصدفة العادية، ويمكن استخدام "*" و "?" و "[]". راجع glob(7) لمزيد من التفاصيل. تُطابق الأنماط مع الأسماء الرئيسة للوحدات الموجودة حاليًا في الذاكرة، والأنماط التي لا تطابق أي شيء يُتجاوز عنها بصمت. على سبيل المثال:

# systemctl stop "sshd@*.service"

سيوقف جميع سيرورات sshd@.service. لاحظ أن أسماء الأسماء المستعارة للوحدات، والوحدات التي ليست في الذاكرة لا تؤخذ في الاعتبار عند توسيع النمط.

لأوامر ملفات الوحدات، يجب أن يكون UNIT المحدد هو اسم ملف الوحدة (ربما مختصرًا، انظر أعلاه)، أو المسار المطلق لملف الوحدة:

# systemctl enable foo.service

أو

# systemctl link /path/to/foo.service

الخيارات

الخيارات التالية مفهومة:

-t، --type=

المعامل هو قائمة مفصولة بفاصلة لأنواع الوحدات مثل service و socket. عندما تُدرج الوحدات باستخدام list-units، أو list-dependencies، أو show، أو status، ستُعرض فقط الوحدات من الأنواع المحددة. مبدئيًا، تُعرض الوحدات من جميع الأنواع.

كحالة خاصة، إذا كان أحد المعاملات هو help، ستُطبع قائمة بالقيم المسموح بها وسيخرج البرنامج.

--state=

المعامل هو قائمة مفصولة بفاصلة لحالات الوحدة LOAD أو SUB أو ACTIVE. عند إدراج الوحدات بـ list-units، أو list-dependencies، أو show، أو status، لا تعرض إلا تلك التي في الحالات المحددة. استخدم --state=failed أو --failed لعرض الوحدات الفاشلة فقط.

كحالة خاصة، إذا كان أحد المعاملات هو help، ستُطبع قائمة بالقيم المسموح بها وسيخرج البرنامج.

أُضيف في الإصدارة 206.

-p، --property=

عند عرض خصائص الوحدة/المهمة/المدير باستخدام الأمر show، اقصر العرض على الخصائص المحددة في المعامل. يجب أن يكون المعامل قائمة مفصولة بفاصلة لأسماء الخصائص، مثل "MainPID". ما لم تُحدد، تُعرض جميع الخصائص المعروفة. إذا حُددت أكثر من مرة، تُعرض جميع الخصائص بالأسماء المحددة. أُعد الإكمال التلقائي للصدفة لأسماء الخصائص.

بالنسبة للمدير نفسه، سيعرض 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.

--بعد

مع 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=

عند طلب إغلاق النظام أو حالة النوم، يتحكم هذا الخيار في التحقق من أقفال المانع (inhibitor locks). ويأخذ إحدى القيم "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 دون وصل procfs على /proc/،

•عند استخدام enable أو disable على وحدات لا تملك معلومات تثبيت (أي لا تملك قسم [Install] أو تملك قسمًا فارغًا)،

•عند استخدام disable مدموجًا مع --user على وحدات مُفعلة في النطاق العام،

•عندما تظل وحدة مـ stop-ـوفة، أو مـ disable-ـعلة، أو مـ mask-ـنعة تملك وحدات تحفيز نشطة،

•عند تغيير ملف وحدة ما وتطلبه لـ daemon-reload.

أُضيف في الإصدار 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

لا ترسل رسالة تحذيرية شاملة (wall) قبل إيقاف التشغيل، وفصل الطاقة، وإعادة التشغيل.

--global

عند استخدامه مع enable وdisable، اعمل على دليل إعدادات المستخدم العام، وبذلك تفعّل أو تطل ملف الوحدة عالميًا لجميع عمليات تسجيل الدخول المستقبلية لكل المستخدمين.

--no-reload

عند استخدامه مع enable، أو disable، أو preset، أو mask، أو unmask، لا تعيد تحميل إعدادات العفريت ضمنيًا بعد تنفيذ التغييرات.

--kill-whom=

عند استخدامه مع kill، اختر العمليات التي ستُرسل إليها إشارة عملية UNIX. يجب أن تكون واحدة من 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(3). يجب أن تكون القيمة المحددة عددًا صحيحًا مُوقعًا بطول 32 بت، ويمكن تحديدها إما بالعشري، أو بالستة عشري (إذا سُبقت بـ "0x")، أو بالثماني (إذا سُبقت بـ "0o") أو بالثنائي (إذا سُبقت بـ "0b")

إذا استُخدم هذا الخيار، فستوضع الإشارة في الطابور للعملية الرئيسة أو عملية التحكم في الوحدة فقط، ولن توضع أبدًا للعمليات الأخرى التابعة للوحدة، أي أن --kill-whom=all سيؤثر فقط على العمليات الرئيسة وعمليات التحكم دون غيرها من العمليات.

أُضيف في الإصدار 254.

--kill-subgroup=المسار

يأخذ مسارًا فرعيًا لمجموعة تحكم لإرسال إشارات إليها، للاستخدام مع الأمر kill. مبدئيًا تُسلم الإشارة المختارة إلى جميع عمليات مجموعات تحكم الوحدة (وكذلك العمليات الرئيسة/التحكم (إذا كانت بالخارج) — رهنًا بـ --kill-whom=). ولكن مع هذا الخيار يمكن اختيار مجموعة فرعية بدلاً من ذلك. هذه الوظيفة متاحة فقط إذا استُخدمت "cgroup" أو "cgroup-fail" مع --kill-whom=، وفي الواقع فإن الخيار الأول هو المبدئي إذا استُخدم --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[2]. لمزيد من المعلومات حول صور الأقراص المدعومة، انظر مفتاح systemd-nspawn(1) الذي يحمل الاسم نفسه.

أُضيف في الإصدار 252.

--image-policy=السياسة

يأخذ سلسلة سياسة صورة كوسييط، وفقًا لـ systemd.image-policy(7). تُفرض السياسة عند العمل على صورة القرص المحددة عبر --image=، انظر أعلاه. إذا لم تُحدد، فسيتم الرجوع إلى سياسة "*" المبدئية، أي تُستخدم جميع أنظمة الملفات المعروفة في الصورة.

--runtime

عند استخدامه مع enable، أو disable، أو edit، (والأوامر ذات الصلة)، اجعل التغييرات مؤقتة فقط، بحيث تُفقد عند إعادة التشغيل التالية. سيكون لهذا أثر بأن التغييرات لن تتم في الأدلة الفرعية لـ /etc/ ولكن في /run/، مع آثار فورية متطابقة، ومع ذلك، بما أن الأخير يُفقد عند إعادة التشغيل، فإن التغييرات تُفقد أيضًا.

وبالمثل، عند استخدامه مع set-property، اجعل التغييرات مؤقتة فقط، بحيث تُفقد عند إعادة التشغيل التالية.

--preset-mode=

يأخذ أحد القيم "full" (المبدئية)، أو "enable-only"، أو "disable-only". عند استخدامه مع أوامر preset أو preset-all، فإنه يتحكم فيما إذا كان سيتم تعطيل وتفعيل الوحدات وفقًا لقواعد الضبط المسبق، أو تفعيلها فقط، أو تعطيلها فقط.

أُضيف في الإصدارة 215.

-n، --lines=

عند استخدامه مع status، يتحكم في عدد أسطر اليومية المراد عرضها، بدءًا من الأحدث. يأخذ وسيطًا كعدد صحيح موجب، أو 0 لتعطيل مخرجات اليومية. يؤول مبدئيًا إلى 10.

-o، --output=

عند الاستخدام مع status، يتحكم في تنسيق مدخلات اليومية المعروضة. للخيارات المتاحة، انظر journalctl(1). يؤول مبدئيًا إلى "short".

--firmware-setup

عند استخدامه مع أوامر reboot، أو poweroff، أو halt، أشر إلى البرمجيات المثبتة (firmware) للنظام بإعادة التشغيل في واجهة إعداد البرمجيات المثبتة للإقلاع التالي. لاحظ أن هذه الوظيفة ليست متاحة في جميع الأنظمة.

أُضيف في الإصدارة 220.

--boot-loader-menu=مهلة_الانتظار

عند استخدامه مع أوامر reboot، أو poweroff، أو halt، أشر إلى محمل إقلاع النظام لعرض قائمة محمل الإقلاع في الإقلاع التالي. يأخذ قيمة زمنية كمعلمة — تشير إلى مهلة انتظار القائمة. مرر صفرًا لتعطيل مهلة انتظار القائمة. لاحظ أن ليس كل محملات الإقلاع تدعم هذه الوظيفة.

أُضيف في الإصدارة 242.

--boot-loader-entry=المعرف

عند استخدامه مع أوامر 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.

يونكس

"@عدد-الثواني-منذ-الحقبة"

أُضيف في الإصدار 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، يُنشأ ملف أو مجلد الوجهة قبل تطبيق وصل الارتباط (bind mount). لاحظ أنه على الرغم من أن اسم هذا الخيار يوحي بأنه مناسب للمجلدات فقط، إلا أن هذا الخيار ينشئ أيضًا عقدة ملف الوجهة للوصل فوقها إذا كان الكائن المراد وصله ليس مجلدًا، بل ملفًا عاديًا، أو عقدة جهاز، أو مقبس أو FIFO.

أُضيف في الإصدار 248.

--read-only

عند استخدامه مع bind، فإنه ينشئ نقطة وصل (bind mount) للقراءة فقط.

أُضيف في الإصدار 248.

--drop-in=الاسم

عند الاستخدام مع edit، استخدم الاسم كاسم لملف الإيداع (drop-in) بدلاً من override.conf.

أُضيف في الإصدار 253.

--when=

عند الاستخدام مع halt، أو poweroff، أو reboot أو kexec، تُجدول العملية لتُنفذ في الختم الزمني المعطى، والذي يجب أن يلتزم بالصيغة الموثقة في قسم "PARSING TIMESTAMPS" في systemd.time(7). وبشكل خاص، إذا أُعطي "show"، فستُعرض العملية المجدولة حاليًا، والتي يمكن إلغاؤها بتمرير سلسلة فارغة أو "cancel". ستجدول القيمة "auto" العملية وفقًا لنافذة الصيانة أو بعد دقيقة واحدة في المستقبل.

أُضيف في الإصدار 254.

--stdin

عند الاستخدام مع edit، ستُقرأ محتويات الملف من الدخل القياسي ولن يُشغل المحرر. في هذا الوضع، تُستبدل المحتويات القديمة للملف تمامًا. هذا مفيد لـ "تحرير" ملفات الوحدات من البرامج النصية:

$ systemctl edit --drop-in=limits.conf --stdin some-service.service <<EOF
[Unit]
AllowedCPUs=7,11
EOF

يمكن "تحرير" ملفات إيداع متعددة في هذا الوضع؛ حيث ستُكتب نفس المحتويات إليها جميعًا.

أُضيف في الإصدار 256.

-H، --host=

نفّذ العملية عن بُعد. حدد اسم مضيف، أو اسم مستخدم واسم مضيف يفصل بينهما "@" للاتصال به. يمكن اختيارياً إلحاق اسم المضيف بمنفذ يستمع إليه ssh، مفصولاً بـ ":"، ثم اسم حاوية، مفصولاً بـ "/"، مما يوصل مباشرة بحاوية معينة على المضيف المحدد. سيستخدم هذا SSH للتحدث إلى نسخة مدير الحاسوب البعيد. يمكن سرد أسماء الحاويات باستخدام machinectl -H المضيف. ضع عناوين IPv6بين قوسين.

-M، --machine=

نفّذ العملية على حاوية محلية. حدد اسم الحاوية للاتصال بها، مسبوقًا اختياريًا باسم مستخدم للاتصال به وحرف "@" كفاصل. إذا استُخدمت السلسلة الخاصة ".host" بدلاً من اسم الحاوية، فسيتم إجراء اتصال بالنظام المحلي (وهو أمر مفيد للاتصال بناقل مستخدم معين: "--user --machine=lennart@.host"). إذا لم تُستخدم صيغة "@"، فسيتم الاتصال كمستخدم جذر (root). إذا استُخدمت صيغة "@"، فيمكن حذف الجانب الأيسر أو الأيمن (ولكن ليس كلاهما) وفي هذه الحالة يُفترض اسم المستخدم المحلي و ".host".

-C، --capsule=

نفذ العملية على كبسولة. حدد اسم الكبسولة للاتصال بها. راجع capsule@.service(5) لمزيد من التفاصيل حول الكبسولات.

أُضيف في الإصدار 256.

--no-ask-password

لا تسأل المستخدم عن الاستيثاق للعمليات ذات الامتيازات.

--no-pager

لا تمرر المخرجات إلى برنامج عرض (pager).

--legend=قيمة_منطقية

مكّن أو عطّل طباعة مفتاح الرموز (legend)، أي ترويسات الأعمدة والتذييل مع التلميحات. يُطبع مفتاح الرموز مبدئيًا، ما لم يُعطل باستخدام --quiet أو ما شابه.

-h، --help

اطبع نص مساعدة قصير واخرج.

--version

اطبع سلسلة إصدار قصيرة واخرج.

حالة الخروج

عند النجاح، يُعاد الرقم 0، وإلا فيُعاد رمز فشل غير صفري.

يستخدم systemctl رموز الإرجاع المحددة بواسطة LSB، كما هي محددة في LSB 3.0.0[3].

جدول 5. رموز إرجاع LSB

القيمة الوصف في LSB الاستخدام في systemd
0 "البرنامج قيد التشغيل أو الخدمة سليمة" الوحدة نشطة
1 "البرنامج ميت وملف معرف العملية (pid) في /var/run موجود" الوحدة ليست فاشلة (تُستخدم بواسطة is-failed)
2 "البرنامج ميت وملف القفل lock في /var/lock موجود" unused
3 "البرنامج ليس قيد التشغيل" الوحدة ليست نشطة
4 "حالة البرنامج أو الخدمة مجهولة" لا توجد وحدة كهذه

إن مطابقة حالات خدمة LSB مع حالات وحدة systemd ليست مثالية، لذا من الأفضل عدم الاعتماد على قيم الإرجاع تلك والبحث عن حالات وتحت-حالات معينة للوحدة بدلاً من ذلك.

البيئة

$SYSTEMD_EDITOR

المحرر المراد استخدامه عند تحرير الوحدات؛ يتجاوز $EDITOR و $VISUAL. إذا لم يتوفر أي من $SYSTEMD_EDITOR أو $EDITOR أو $VISUAL أو إذا ضُبط أي منها على سلسلة فارغة أو فشل تنفيذها، فسيحاول systemctl تنفيذ محررين معروفين بهذا الترتيب: editor(1)، و nano(1)، و 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 يحدد التسجيل بمستوى debug باستثناء التسجيل في الطرفية الذي يجب أن يكون بمستوى info). لاحظ أن الحد الأقصى العالمي لمستوى السجل له الأولوية على أي حدود مستويات سجل لكل هدف على حدة.

$SYSTEMD_LOG_COLOR

قيمة منطقية. إذا كانت صحيحة، فستُلون الرسائل المكتوبة في الـ tty حسب الأولوية.

هذا الإعداد مفيد فقط عندما تُكتب الرسائل مباشرة إلى الطرفية، لأن journalctl(1) والأدوات الأخرى التي تعرض السجلات ستلون الرسائل بناءً على مستوى السجل من تلقاء نفسها.

$SYSTEMD_LOG_TIME

قيمة منطقية. إذا كانت صحيحة، فستُسبق رسائل سجل الطرفية بختم زمني.

هذا الإعداد مفيد فقط عندما تُكتب الرسائل مباشرة إلى الطرفية أو إلى ملف، لأن 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(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(1) لمزيد من النقاش.

$SYSTEMD_LESSCHARSET

يتجاوز طقم المحارف الممرر إلى less (مبدئيًا "utf-8"، إذا حُدّد أن الطرفية المستدعية متوافقة مع UTF-8).

لاحظ أن ضبط متغير البيئة العادي $LESSCHARSET ليس له أي تأثير عند استدعاء less بواسطة أدوات systemd.

$SYSTEMD_PAGERSECURE

تدعم أوامر المستعرض (pager) الشائعة مثل less(1)، بالإضافة إلى "التصفح"، أي التمرير عبر المخرجات، فتح ملفات أخرى أو الكتابة إليها وتشغيل أوامر صدفة عشوائية. عند استدعاء الأوامر بامتيازات مرفوعة، على سبيل المثال تحت sudo(8) أو pkexec(1)، يصبح المستعرض حدًا أمنيًا. يجب الحرص على استخدام البرامج ذات الوظائف المحدودة للغاية فقط كمستعرضات، وعدم السماح بالميزات التفاعلية غير المقصودة مثل فتح ملفات جديدة أو إنشائها أو بدء عمليات فرعية. يمكن تمكين "الوضع الآمن" للمستعرض كما هو موضح أدناه، إذا كان المستعرض يدعم ذلك (معظم المستعرضات لم تُكتب بطريقة تأخذ هذا في الاعتبار). يوصى إما بتمكين "الوضع الآمن" صراحةً أو تعطيل المستعرض تمامًا باستخدام --no-pager أو PAGER=cat عند السماح للمستخدمين غير الموثوق بهم بتنفيذ أوامر بامتيازات مرفوعة.

يأخذ هذا الخيار وسيطًا منطقيًا. عند ضبطه على صحيح (true)، يتم تمكين "الوضع الآمن" لمستعرض الصفحات. في "الوضع الآمن"، سيُضبط LESSSECURE=1 عند استدعاء المستعرض، مما يوجه المستعرض لتعطيل الأوامر التي تفتح أو تنشئ ملفات جديدة أو تبدأ عمليات فرعية جديدة. حاليًا، يُعرف فقط less(1) بقدرته على فهم هذا المتغير وتطبيق "الوضع الآمن".

عند الضبط إلى false، لا توضع قيود على أداة التصفح (pager). إن ضبط SYSTEMD_PAGERSECURE=0 أو عدم إزالته من البيئة الموروثة قد يسمح للمستخدم باستدعاء أوامر اعتباطية.

عندما لا يُضبط $SYSTEMD_PAGERSECURE، تحاول أدوات systemd استنتاج ما إذا كان ينبغي تمكين "الوضع الآمن" وما إذا كان جهاز العرض يدعمه آليًا. يُمكّن "الوضع الآمن" إذا كان UID الفعلي ليس هو نفسه مالك جلسة تسجيل الدخول، انظر 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

يأخذ وسيطًا منطقيًا (boolean)، أو قيمة خاصة. مبدئيًا (عند عدم الضبط)، سيستخدم systemd والأدوات المرتبطة به الألوان في مخرجاتها إذا أمكن ذلك. إذا ضُبط $COLORTERM على "truecolor" أو "24bit"، فسيتم تمكين ألوان 24 بت، وإلا فستُستخدم 256 لونًا، ما لم يشر $NO_COLOR أو $TERM إلى تعطيل الألوان.

true

نفس حالة عدم الضبط، باستثناء تجاهل $NO_COLOR.

false

سيكون المخرج أحادي اللون.

"16"، "256"، "24bit"

استخدم دائمًا ألوان ANSI الـ 16 الأساسية، أو 256 لونًا، أو لون 24 بت، على التوالي.

"auto-16"، "auto-256"، "auto-24bit"

استخدم كمية الألوان المعطاة، بشرط $TERM، وما هو متصل بالطرفية.

$SYSTEMD_URLIFY

يجب أن تكون القيمة منطقية. تتحكم فيما إذا كان يجب توليد روابط قابلة للنقر في المخرج لمحاكيات الطرفية التي تدعم ذلك. يمكن تحديد هذا لتجاوز القرار الذي يتخذه systemd بناءً على $TERM وشروط أخرى.

انظر أيضًا

systemd(1)، journalctl(1)، loginctl(1)، machinectl(1)، systemd.unit(5)، systemd.resource-control(5)، systemd.special(7)، wall(1)، systemd.preset(5)، systemd.generator(7)، glob(7)

ملاحظات

1.
مواصفات محمل الإقلاع UAPI.1
2.
UAPI.2 مواصفات الأقسام القابلة للاكتشاف
3.
LSB 3.0.0
4.
يوصى للأدوات الأخرى بضبط والتحقق من $SUDO_UID حسب الاقتضاء، ومعاملته كواجهة مشتركة.

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

systemd 260.1