table of contents
| SYSTEMCTL(1) | systemctl | SYSTEMCTL(1) |
الاسم¶
systemctl - التحكم في مدير النظام والخدمة systemd
موجز¶
systemctl [OPTIONS...] COMMAND [UNIT...]
الوصف¶
يمكن استخدام systemctl لفحص والتحكم في حالة مدير النظام والخدمة "systemd". يُرجى الرجوع إلى systemd(1) للحصول على مقدمة حول المفاهيم الأساسية والوظائف التي تديرها هذه الأداة.
الأوامر¶
الأوامر التالية مفهومة:
أوامر الوحدة (الفحص والتعديل)¶
list-units [PATTERN...]
لاحظ أن هذا الأمر لا يعرض قوالب الوحدات، بل يعرض فقط نماذج من قوالب الوحدات. قوالب الوحدات التي لم تُنشأ منها نماذج ليست قابلة للتشغيل، ولن تظهر أبدًا في مخرجات هذا الأمر. يعني هذا تحديدًا أن 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...]
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...]
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...
is-failed [PATTERN...]
أُضيف في الإصدارة 197.
status [PATTERN...|PID...]]
الغرض من هذه الوظيفة هو إنتاج مخرجات قابلة للقراءة البشرية. إذا كنت تبحث عن مخرجات يمكن للحاسوب تحليلها، فاستخدم 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...]
العديد من الخصائص التي يعرضها systemctl show ترتبط مباشرة بإعدادات تهيئة مدير النظام والخدمة وملفات وحداته. لاحظ أن الخصائص التي يعرضها الأمر هي بشكل عام نسخ منخفضة المستوى ومعيرة من إعدادات التهيئة الأصلية وتكشف عن حالة وقت التشغيل بالإضافة إلى التهيئة. على سبيل المثال، تتضمن الخصائص المعروضة لوحدات الخدمة معرف العملية الرئيس الحالي للخدمة كـ "MainPID" (وهي حالة وقت تشغيل)، وتُكشف إعدادات الوقت دائمًا كخصائص تنتهي باللاحقة "...USec" حتى لو كانت خيارات التهيئة المطابقة تنتهي بـ "...Sec"، لأن الميكروثانية هي وحدة الوقت المعيرة المستخدمة داخليًا بواسطة مدير النظام والخدمة.
لمزيد من التفاصيل حول العديد من هذه الخصائص، انظر توثيق واجهة D-Bus التي تدعم هذه الخصائص، انظر org.freedesktop.systemd1(5).
cat PATTERN...
أُضيف في الإصدارة 209.
help PATTERN...|PID...
أُضيف في الإصدار 185.
list-dependencies [UNIT...]
تُرشح الوحدات المعروضة إضافيًا بواسطة --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...
يجب عدم الخلط بين هذا الأمر وأمر daemon-reload.
restart PATTERN...
لاحظ أن إعادة تشغيل وحدة بهذا الأمر لا يفرغ بالضرورة جميع موارد الوحدة قبل بدئها مرة أخرى. على سبيل المثال، ستظل مرافق تخزين واصف الملفات الخاصة بالخدمة (انظر FileDescriptorStoreMax= في systemd.service(5)) سليمة طالما أن للوحدة مهمة معلقة، ولا تُمسح إلا عندما تُوقف الوحدة تمامًا ولا تتبقى أي مهام معلقة. إذا كان القصد هو إفراغ مخزن واصفات الملفات أيضًا خلال عملية إعادة التشغيل، فيجب إصدار أمر systemctl stop صريح يتبعه systemctl start.
try-restart PATTERN...
enqueue-marked
ما لم يُستخدم --no-block، سينتظر systemctl انتهاء المهام المدرجة في الطابور.
أُضيف في الإصدار 260.
reload-or-restart PATTERN...
عند استخدامه مع --marked، فإنه يعتبر اسمًا مستعارًا مهجورًا لـ enqueue-marked.
try-reload-or-restart PATTERN...
أُضيف في الإصدارة 229.
isolate UNIT
هذا الأمر خطير، لأنه سيوقف فورًا العمليات غير المفعلة في الهدف الجديد، بما في ذلك ربما البيئة الرسومية أو الطرفية التي تستخدمها حاليًا.
لاحظ أن هذه العملية مسموح بها فقط في الوحدات التي فُعل فيها AllowIsolate=. انظر systemd.unit(5) للتفاصيل.
kill PATTERN...
clean PATTERN...
جدول 2.
القيم
الممكنة لـ
--what=
| القيمة | إعداد الوحدة |
| "وقت التشغيل" | RuntimeDirectory= |
| "state" | StateDirectory= |
| "cache" | CacheDirectory= |
| "logs" | LogsDirectory= |
| "configuration" | ConfigurationDirectory= |
| "fdstore" | FileDescriptorStorePreserve= |
| "all" | كل ما سبق |
| "help" | عرض القيم المدعومة والخروج |
أُضيف في الإصدار 243.
freeze PATTERN...
تجميد الوحدة سيؤدي إلى تعليق جميع العمليات الموجودة داخل cgroup المقابلة للوحدة. والتعليق يعني أن عمليات الوحدة لن تُجدول للعمل على وحدة المعالجة الرئيسية حتى تُذاب. لاحظ أن هذا الأمر مدعوم فقط في الأنظمة التي تستخدم هيكلية cgroup الموحدة. تُذاب الوحدة آليًا مباشرة قبل تنفيذ مهمة ضد الوحدة، مثلًا قبل إيقاف الوحدة.
أُضيف في الإصدار 246.
thaw PATTERN...
هذه هي العملية العكسية لأمر freeze وتستأنف تنفيذ العمليات في cgroup الخاصة بالوحدة.
أُضيف في الإصدار 246.
set-property UNIT PROPERTY=VALUE...
مثال: 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]
لاحظ أن هذا الخيار مدعوم حاليًا فقط للوحدات التي تعمل داخل مساحة أسماء وصل (مثلًا: مع RootImage= و PrivateMounts= وما إلى ذلك). يدعم هذا الأمر الوصل الرابض للأدلة، والملفات العادية، وعقد الأجهزة، وعقد مقابس AF_UNIX، بالإضافة إلى أنابيب FIFO. الوصل الرابض سريع الزوال، ويُفك بمجرد انتهاء عملية الوحدة الحالية. لاحظ أن مساحة الأسماء المذكورة هنا، والتي سيُضاف إليها الوصل الرابض، هي تلك التي تعمل فيها عملية الخدمة الرئيسة. العمليات الأخرى (تلك المنفذة بواسطة ExecReload= و ExecStartPre= وما إلى ذلك) تعمل في مساحات أسماء متميزة.
إذا كانت النواة تدعم ذلك، فسيُستبدل أي وصل سابق على الهدف المحدد بالوصل الجديد. وإذا لم يكن مدعومًا، فسيُغطى أي وصل سابق بآخر جديد، لكنه سيظل مثبتًا ولا يمكن الوصول إليه.
أُضيف في الإصدار 248.
mount-image UNIT IMAGE [PATH [PARTITION_NAME:MOUNT_OPTIONS]]
لاحظ أن هذا الخيار مدعوم حاليًا فقط للوحدات التي تعمل داخل مساحة أسماء وصل (أي مع 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، فستتغير درجة السجل الحالية للخدمة إلى 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، فستتغير وجهة السجل الحالية للخدمة إلى 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) للوحدة، فإنه يعيد ضبط خصائص أخرى متنوعة لكل وحدة: حيث يُصفّر عداد حد معدل البدء لجميع أنواع الوحدات، وكذلك عداد إعادة التشغيل لوحدات الخدمة. وبناءً على ذلك، إذا بُلغ حد البدء للوحدة (كما هو مضبوط في StartLimitIntervalSec=/StartLimitBurst=) ورفضت الوحدة البدء مرة أخرى، فاستخدم هذا الأمر لجعلها قابلة للبدء مجددًا.
whoami [PID...]
أُضيف في الإصدار 254.
أوامر ملف الوحدة¶
list-unit-files [PATTERN...]
على عكس list-units، سيسرد هذا الأمر وحدات القوالب بالإضافة إلى الوحدات التي أُنشئت نماذجها صراحةً.
أُضيف في الإصدار 233.
enable UNIT..., enable PATH...
يتوقع هذا الأمر إما أسماء وحدات صالحة (وفي هذه الحالة تُفتش أدلة ملفات الوحدات المتنوعة آليًا عن ملفات وحدات بأسماء مناسبة)، أو مسارات مطلقة لملفات الوحدات (وفي هذه الحالة تُقرأ هذه الملفات مباشرة). إذا كان ملف وحدة محدد يقع خارج أدلة ملفات الوحدات المعتادة، فسيُنشأ رابط رمزي إضافي، يربطه بمسار تكوين الوحدة، مما يضمن العثور عليه عند طلبه بواسطة أوامر مثل start. يجب أن يكون نظام الملفات الذي تقع فيه ملفات الوحدات المرتبطة متاحًا عند بدء تشغيل systemd (على سبيل المثال، لا يُسمح بأي شيء تحت /home/ أو /var/، ما لم تكن تلك الأدلة واقعة على نظام الملفات الجذر).
سيطبع هذا الأمر عمليات نظام الملفات المنفذة. يمكن كتم هذا المخرج بتمرير --quiet.
لاحظ أن هذه العملية تنشئ فقط الروابط الرمزية المقترحة في قسم [Install] لملفات الوحدات. بينما يعد هذا الأمر الطريقة الموصى بها للتلاعب بدليل تكوين الوحدة، فللمسؤول الحرية في إجراء تغييرات إضافية يدويًا بوضع أو إزالة روابط رمزية تحت هذا الدليل. هذا مفيد بشكل خاص لإنشاء تكوينات تنحرف عن التثبيت المبدئي المقترح. في هذه الحالة، يجب على المسؤول التأكد من استدعاء daemon-reload يدويًا حسب الضرورة، لضمان أخذ التغييرات في الحسبان.
عند استخدام هذه العملية على وحدات لا تملك معلومات تثبيت، سيُعرض تحذير بشأن ذلك. يمكن استخدام --no-warn لكتم التحذير.
يجب عدم الخلط بين تفعيل الوحدات وبين بدء تشغيلها (تنشيطها)، كما يفعل أمر start. تفعيل الوحدات وبدء تشغيلها أمران متعامدان: فقد تُفعل الوحدات دون بدء تشغيلها، وتُشغل دون تفعيلها. التفعيل ببساطة يربط الوحدة في أماكن متنوعة مقترحة (على سبيل المثال، لتبدأ الوحدة آليًا عند الإقلاع أو عند توصيل نوع معين من العتاد). أما بدء التشغيل فيقوم فعليًا بتوليد عملية الخادم (في حالة وحدات الخدمة)، أو ربط المقبس (في حالة وحدات المقابس)، وهكذا.
اعتمادًا على ما إذا كان قد حُدد --system أو --user أو --runtime أو --global، فإن هذا يفعل الوحدة للنظام، أو للمستخدم المستدعِي فقط، أو لهذه المرة من إقلاع النظام فقط، أو لجميع عمليات تسجيل الدخول المستقبلية لجميع المستخدمين. لاحظ أنه في الحالة الأخيرة، لا يُعاد تحميل أي تكوين لخادم systemd.
استخدام enable على الوحدات المحجوبة غير مدعوم وينتج عنه خطأ.
disable UNIT...
يتوقع هذا الأمر أسماء وحدات صالحة فقط، ولا يقبل مسارات لملفات الوحدات.
بالإضافة إلى الوحدات المحددة كمعاملات، يتم تعطيل جميع الوحدات المدرجة في الإعداد Also= الموجود في قسم [Install] في أي من ملفات الوحدات التي يجري العمل عليها.
يُعيد هذا الأمر تحميل تكوين مدير النظام ضمنيًا بعد إكمال العملية. لاحظ أن هذا الأمر لا يوقف الوحدات التي يتم تعطيلها ضمنيًا. إذا كان ذلك مطلوبًا، فإما أن تجمع بين هذا الأمر والمبدل --now، أو تستدعي أمر stop بوسطاء مناسبة لاحقًا.
سيطبع هذا الأمر معلومات حول عمليات نظام الملفات (إزالات الروابط الرمزية) المنفذة. يمكن كتم هذا المخرج بتمرير --quiet.
إذا عُطلت وحدة وظلت الوحدات المُطلِقة لها نشطة، فسيُعرض تحذير يحتوي على أسماء الوحدات المُطلِقة. يمكن استخدام --no-warn لكتم التحذير.
عند استخدام هذا الأمر مع --user، قد تظل الوحدات قيد التشغيل مفعلة في النطاق العام، وبالتالي ستبدأ آليًا حتى بعد نجاح تعطيلها في نطاق المستخدم. في هذه الحالة، سيُعرض تحذير بشأن ذلك، ويمكن كتمه باستخدام --no-warn.
يحترم هذا الأمر الخيارات --system و --user و --runtime و --global و --no-warn بطريقة مماثلة لـ enable.
أُضيف في الإصدارة 238.
reenable UNIT...
يُعيد هذا الأمر تحميل تكوين مدير النظام ضمنيًا بعد إكمال العملية. لاحظ أن هذا الأمر لا يُعيد تشغيل الوحدات التي يتم تعطيلها ضمنيًا. إذا كان ذلك مطلوبًا، فإما أن تجمع بين هذا الأمر والمبدل --now، أو تستدعي أمر try-restart بوسطاء مناسبة لاحقًا.
أُضيف في الإصدارة 238.
preset UNIT...
استخدم --preset-mode= للتحكم فيما إذا كانت الوحدات ستُفعل وتُعطل، أو تُفعل فقط، أو تُعطل فقط.
إذا لم تحمل الوحدة معلومات تثبيت، فسيتم تجاهلها بصمت بواسطة هذا الأمر. يجب أن يكون UNIT هو اسم الوحدة الحقيقي، وستُتجاهل أي أسماء مستعارة بصمت.
لمزيد من المعلومات حول تنسيق سياسة الضبط المسبق، راجع systemd.preset(5).
أُضيف في الإصدارة 238.
preset-all
استخدم --preset-mode= للتحكم فيما إذا كانت الوحدات ستُفعل وتُعطل، أو تُفعل فقط، أو تُعطل فقط.
أُضيف في الإصدارة 215.
is-enabled UNIT...
جدول 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...
لاحظ أن هذا سيؤنشئ رابطًا رمزيًا تحت اسم الوحدة في /etc/systemd/system/ (في حال لم يُحدد --runtime) أو في /run/systemd/system/ (في حال حُدد --runtime). إذا كان هناك ملف وحدة مطابق موجود بالفعل تحت هذه الأدلة، فستفشل هذه العملية. هذا يعني أن العملية مفيدة بشكل رئيس لحجب الوحدات التي يشحنها المورد (لأنها تُشحن في /usr/lib/systemd/system/ وليس في الدليلين المذكورين سابقًا)، ولكنها عادةً لا تعمل مع الوحدات المنشأة محليًا (لأنها توضع عادةً بدقة في الدليلين المذكورين سابقًا). تنطبق قيود مماثلة على وضع --user، وفي هذه الحالة تكون الأدلة تحت دليل منزل المستخدم.
إذا حُجبت وحدة وظلت الوحدات المُطلِقة لها نشطة، فسيُعرض تحذير يحتوي على أسماء الوحدات المُطلِقة. يمكن استخدام --no-warn لكتم التحذير.
أُضيف في الإصدارة 238.
unmask UNIT...
أُضيف في الإصدارة 238.
link PATH...
أُضيف في الإصدار 233.
revert UNIT...
فعليًا، يمكن استخدام هذا الأمر لإلغاء جميع التغييرات التي أُجريت باستخدام systemctl edit و systemctl set-property و systemctl mask وإعادة ملف الوحدة الأصلي بإعداداته إلى حيز التنفيذ.
أُضيف في الإصدارة 230.
add-wants TARGET UNIT..., add-requires TARGET UNIT...
يحترم هذا الأمر الخيارات --system و --user و --runtime و --global بطريقة مماثلة لـ enable.
أُضيف في الإصدارة 217.
edit UNIT...
اعتمادًا على ما إذا كان قد حُدد --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
أُضيف في الإصدارة 205.
set-default TARGET
أُضيف في الإصدارة 205.
أوامر الآلة¶
list-machines [PATTERN...]
أُضيف في الإصدارة 212.
أوامر المهام¶
list-jobs [PATTERN...]
عند استخدامه مع --after أو --before، تُعزز القائمة بمعلومات حول المهمة الأخرى التي تنتظرها كل مهمة، والمهام الأخرى التي تنتظرها، انظر أعلاه.
أُضيف في الإصدار 233.
cancel [JOB...]
أُضيف في الإصدار 233.
أوامر البيئة¶
يدعم systemd كتلة بيئة تُمرر إلى العمليات التي يولدها المدير. يمكن أن تحتوي أسماء المتغيرات على أحرف ASCII وأرقام وشرطة سفلية. لا يمكن أن تكون أسماء المتغيرات فارغة أو تبدأ برقم. في قيم المتغيرات، يُسمح بمعظم المحارف، ولكن يجب أن يكون التسلسل بالكامل بصيغة UTF-8 صالحة. (لاحظ أن محارف التحكم مثل سطر جديد (NL)، أو علامة التبويب (TAB)، أو محرف الهروب (ESC)، تعد ASCII صالحة وبالتالي UTF-8 صالحة). يقتصر الطول الإجمالي لكتلة البيئة على قيمة _SC_ARG_MAX المحددة بواسطة sysconf(3).
show-environment
لاحظ أن هذا يعرض الكتلة الفعالة، أي مزيج متغيرات البيئة التي ضُبطت عبر ملفات الإعداد ومولدات البيئة وعبر IPC (أي عبر set-environment الموضح أدناه). في اللحظة التي تُفرع فيها عملية الوحدة، ستُدمج كتلة البيئة المجمعة هذه مع متغيرات البيئة الخاصة بالوحدة، والتي لا تظهر في هذا الأمر.
set-environment VARIABLE=VALUE...
لاحظ أن هذا يعمل على كتلة بيئة منفصلة عن كتلة البيئة التي ضُبطت من إعدادات مدير الخدمة ومولدات البيئة. كلما استُدعيت عملية، تُدمج الكتلتان (مع دمج أي متغيرات بيئة خاصة بالخدمة أيضًا)، وتُمرر إليها. سيعرض الفعل show-environment مزيج الكتل، انظر أعلاه.
أُضيف في الإصدار 233.
unset-environment VARIABLE...
لاحظ أن هذا يعمل على كتلة بيئة منفصلة عن كتلة البيئة التي ضُبطت من إعدادات مدير الخدمة ومولدات البيئة. كلما استُدعيت عملية، تُدمج الكتلتان (مع دمج أي متغيرات بيئة خاصة بالخدمة أيضًا)، وتُمرر إليها. سيعرض الفعل show-environment مزيج الكتل، انظر أعلاه. لاحظ أن هذا يعني أنه لا يمكن استخدام هذا الأمر لإلغاء ضبط متغيرات البيئة المعرفة في ملفات إعداد مدير الخدمة أو عبر المولدات.
أُضيف في الإصدار 233.
import-environment VARIABLE...
استيراد كتلة البيئة الموروثة بالكامل (استدعاء هذا الأمر بدون أي وسائط) مهجور. ستضبط الصدفة العشرات من المتغيرات التي لا معنى لها إلا محليًا والمقصود بها فقط العمليات المنحدرة من الصدفة. مثل هذه المتغيرات في كتلة البيئة العامة تكون مربكة للعمليات الأخرى.
أُضيف في الإصدارة 209.
أوامر حالة المدير¶
daemon-reload
لا ينبغي الخلط بين هذا الأمر وأمر reload.
daemon-reexec
log-level [المستوى]
أُضيف في الإصدارة 244.
log-target [TARGET]
أُضيف في الإصدارة 244.
service-watchdogs [yes|no]
أُضيف في الإصدارة 244.
أوامر النظام¶
is-system-running
استخدم --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
rescue
emergency
halt
إذا دمج مع --force، سيُتخطى إيقاف تشغيل جميع الخدمات التي تعمل، ومع ذلك ستُقتل جميع العمليات وتُفصل جميع أنظمة الملفات أو تُوصل للقراءة فقط، متبوعة فورًا بتعليق النظام. إذا حُدد --force مرتين، فستُنفذ العملية فورًا دون إنهاء أي عمليات أو فصل أي أنظمة ملفات. قد يؤدي هذا إلى فقدان البيانات. لاحظ أنه عندما يُحدد --force مرتين، تُنفذ عملية التعليق بواسطة systemctl نفسه، ولا يُتراسل مع مدير النظام. هذا يعني أن الأمر يجب أن ينجح حتى لو تعطل مدير النظام.
إذا دمج مع --when=، فسيُجدول إيقاف التشغيل بعد الطابع الزمني المعطى. و --when=cancel سيلغي إيقاف التشغيل.
poweroff
يحترم هذا الأمر --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
لتحميل النواة، يُجرى تعداد باتباع مواصفات محمل الإقلاع UAPI.1[1]، ويُحمل مدخل الإقلاع المبدئي. لكي تنجح هذه الخطوة، يجب أن يستخدم النظام UEFI ويجب أن تُضبط مداخل محمل الإقلاع بشكل مناسب. يمكن استخدام bootctl list لسرد مداخل الإقلاع، انظر bootctl(1).
هذا الأمر غير متزامن؛ سيعود بعد إدراج عملية إعادة الإقلاع في الطابور، دون انتظار اكتمالها.
يحترم هذا الأمر --force و --when= بطريقة مشابهة لـ halt.
إذا حُملت نواة جديدة عبر kexec --load، فسيُجرى kexec عند استدعاء reboot، ما لم يُضبط "SYSTEMCTL_SKIP_AUTO_KEXEC=1".
soft-reboot
يحترم هذا الأمر --force و --when= بطريقة مشابهة لـ halt.
هذه العملية تعيد إقلاع مساحة المستخدم فقط، مع ترك النواة تعمل. انظر systemd-soft-reboot.service(8) للتفاصيل.
إذا أُعد نظام ملفات جذر جديد على "/run/nextroot/"، فسيُجرى soft-reboot عند استدعاء reboot، ما لم يُضبط "SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1".
أُضيف في الإصدار 254.
exit [EXIT_CODE]
سيخرج مدير الخدمة برمز الخروج المحدد، إذا مُرر EXIT_CODE.
أُضيف في الإصدارة 227.
switch-root [ROOT [INIT]]
أُضيف في الإصدارة 209.
sleep
أُضيف في الإصدار 256.
suspend
إذا حُدد --force، وأعاد systemd-logind خطأ للعملية، سيُتجاهل الخطأ وستُحاول العملية مرة أخرى مباشرة عبر بدء وحدة الهدف.
hibernate
يحترم هذا الأمر --force بنفس طريقة suspend.
hybrid-sleep
يحترم هذا الأمر --force بنفس طريقة suspend.
أُضيف في الإصدارة 196.
suspend-then-hibernate
يحترم هذا الأمر --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=
كحالة خاصة، إذا كان أحد المعاملات هو help، ستُطبع قائمة بالقيم المسموح بها وسيخرج البرنامج.
--state=
كحالة خاصة، إذا كان أحد المعاملات هو help، ستُطبع قائمة بالقيم المسموح بها وسيخرج البرنامج.
أُضيف في الإصدارة 206.
-p، --property=
بالنسبة للمدير نفسه، سيعرض systemctl show جميع الخصائص المتاحة، والتي يشتق معظمها أو يتطابق وثيقًا مع الخيارات الموضحة في systemd-system.conf(5).
تختلف خصائص الوحدات حسب نوع الوحدة، لذا فإن عرض أي وحدة (حتى لو كانت غير موجودة) هو وسيلة لسرد الخصائص المتعلقة بهذا النوع. بالمثل، فإن عرض أي مهمة سيسرد الخصائص المتعلقة بجميع المهام. خُصصت توثيقات لخصائص الوحدات في systemd.unit(5)، وصفحات أنواع الوحدات الفردية systemd.service(5)، و systemd.socket(5)، إلخ.
-P
أُضيف في الإصدار 246.
-a، --all
لسرد جميع الوحدات المثبتة في نظام الملفات، استخدم أمر list-unit-files بدلاً من ذلك.
عند إدراج الوحدات بـ list-dependencies، تُعرض التبعيات تكراريًا لجميع الوحدات التابعة (مبدئيًا تُعرض تبعيات الوحدات الهدف فقط).
عند استخدامه مع status، تُعرض رسائل السجل كاملة، حتى لو كانت تتضمن محارف غير قابلة للطباعة أو كانت طويلة جدًا. مبدئيًا، الحقول التي تحتوي محارف غير قابلة للطباعة تُختصر كـ "بيانات كتلة" (blob data). (لاحظ أن المستعرض قد يهرب المحارف غير القابلة للطباعة مرة أخرى.)
-r، --recursive
أُضيف في الإصدارة 212.
--reverse
أُضيف في الإصدارة 203.
--بعد
لاحظ أن أي تبعية After= تُعكس آليًا لإنشاء تبعية Before=. قد تُحدد التبعيات الزمنية صراحة، ولكنها تُنشأ أيضًا ضمنيًا للوحدات التي هي أهداف WantedBy= (انظر systemd.target(5))، ونتيجة لتوجيهات أخرى (على سبيل المثال RequiresMountsFor=). تُعرض كل من التبعيات المقدمة صراحة وضمنيًا مع list-dependencies.
عند تمريره إلى أمر list-jobs، يعرض لكل مهمة مطبوعة المهام الأخرى التي تنتظرها. يمكن دمجه مع --before لإظهار المهام التي تنتظر كل مهمة وكذلك جميع المهام التي تنتظرها كل مهمة.
أُضيف في الإصدارة 203.
--before
عند تمريره إلى أمر list-jobs، يعرض لكل مهمة مطبوعة المهام الأخرى التي تنتظرها هي. يمكن دمجه مع --after لإظهار المهام التي تنتظر كل مهمة وكذلك جميع المهام التي تنتظرها كل مهمة.
أُضيف في الإصدارة 212.
--with-dependencies
يمكن استخدام الخيارات --reverse و --after و --before لتغيير أنواع الاعتماديات المعروضة.
أُضيف في الإصدار 245.
-l، --full
يعرض أيضًا أهداف التثبيت في مخرجات is-enabled.
--value
أُضيف في الإصدارة 230.
--show-types
أُضيف في الإصدارة 202.
--job-mode=
إذا حُدد "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
أُضيف في الإصدارة 242.
--fail
عند استخدامه مع أمر kill، إذا لم تُقتل أي وحدات، فستؤدي العملية إلى خطأ.
أُضيف في الإصدارة 227.
--check-inhibitors=
يمكن للتطبيقات إنشاء أقفال مانعة لمنع عمليات مهمة معينة (مثل حرق الأقراص المدمجة) من الانقطاع بسبب إغلاق النظام أو النوم. يجوز لأي مستخدم أخذ هذه الأقفال ويجوز للمستخدمين ذوي الامتيازات تجاوز هذه الأقفال. إذا أُخذت أي أقفال، فستفشل طلبات حالة الإغلاق والنوم عادةً (ما لم تُتجاوز صراحةً بـ "no").
يوفر الخيار --force طريقة أخرى لتجاوز الموانع.
أُضيف في الإصدار 248.
-i
أُضيف في الإصدارة 198.
--dry-run
أُضيف في الإصدارة 236.
-q، --quiet
-v، --verbose
أُضيف في الإصدار 258.
--no-warn
أُضيف في الإصدار 253.
--no-block
--wait
عند استخدامه مع is-system-running، انتظر حتى تكتمل عملية الإقلاع قبل العودة.
عند استخدامه مع kill، انتظر حتى تنتهي الوحدات الموجه إليها الإشارة. لاحظ أن هذا سينتظر للأبد إذا لم تنتهِ أي وحدة معطاة.
أُضيف في الإصدار 232.
--user
--system
--failed
أُضيف في الإصدار 233.
--no-wall
--global
--no-reload
--kill-whom=
أُضيف في الإصدار 252.
--kill-value=INT
إذا استُخدم هذا الخيار، فستوضع الإشارة في الطابور للعملية الرئيسة أو عملية التحكم في الوحدة فقط، ولن توضع أبدًا للعمليات الأخرى التابعة للوحدة، أي أن --kill-whom=all سيؤثر فقط على العمليات الرئيسة وعمليات التحكم دون غيرها من العمليات.
أُضيف في الإصدار 254.
--kill-subgroup=المسار
المسار المحدد قد يُسبق بشرطة مائلة ولكن لا يجب ذلك، وغيابها أو وجودها ليس له أي تأثير، إذ يُؤخذ المسار في كلتا الحالتين بالنسبة لمسار مجموعة التحكم الرئيسة للوحدة.
تتوفر هذه الوظيفة فقط في الوحدات التي تم فيها تمكين تفويض مجموعة التحكم (انظر Delegate= في systemd.resource-control(5)).
أُضيف في الإصدار 258.
-s، --signal=
القيمة الخاصة "help" ستسرد القيم المعروفة وسيخرج البرنامج فورًا، والقيمة الخاصة "list" ستسرد القيم المعروفة مع أرقام الإشارات العددية وسيخرج البرنامج فورًا.
--what=
أُضيف في الإصدار 243.
-f، --force
عند استخدامه مع edit، أنشئ جميع الوحدات المحددة التي لا وجود لها مسبقًا.
عند استخدامه مع suspend، أو hibernate، أو hybrid-sleep، أو suspend-then-hibernate، سيتم تجاهل الخطأ المرجوع من systemd-logind، وستُنفذ العملية مباشرة عبر تشغيل الوحدات المقابلة.
عند استخدامه مع halt، أو poweroff، أو reboot، أو kexec، نفذ العملية المختارة دون إغلاق جميع الوحدات. ومع ذلك، ستُقتل جميع العمليات قسرًا وتُفصل جميع أنظمة الملفات أو تُعاد وصلها للقراءة فقط. لذا فإن هذا خيار حاد ولكنه آمن نسبيًا لطلب إعادة تشغيل فورية. إذا حُدد --force مرتين لهذه العمليات (باستثناء kexec)، فستُنفذ فورًا، دون إنهاء أي عمليات أو فصل أي أنظمة ملفات.
تحذير
تحديد --force مرتين مع أي من هذه العمليات قد يؤدي إلى فقدان البيانات. لاحظ أنه عند تحديد --force مرتين، تُنفذ العملية المختارة بواسطة systemctl نفسه، ولا يتم التواصل مع مدير النظام. هذا يعني أن الأمر يجب أن ينجح حتى لو انهار مدير النظام.
--message=
أُضيف في الإصدارة 225.
--now
أُضيف في الإصدارة 220.
--root=
--image=image
أُضيف في الإصدار 252.
--image-policy=السياسة
--runtime
وبالمثل، عند استخدامه مع set-property، اجعل التغييرات مؤقتة فقط، بحيث تُفقد عند إعادة التشغيل التالية.
--preset-mode=
أُضيف في الإصدارة 215.
-n، --lines=
-o، --output=
--firmware-setup
أُضيف في الإصدارة 220.
--boot-loader-menu=مهلة_الانتظار
أُضيف في الإصدارة 242.
--boot-loader-entry=المعرف
أُضيف في الإصدارة 242.
--reboot-argument=
أُضيف في الإصدار 246.
--plain
أُضيف في الإصدارة 203.
--timestamp=
pretty (هذا هو المبدئي)
أُضيف في الإصدار 248.
يونكس
أُضيف في الإصدار 251.
us، μs
أُضيف في الإصدار 248.
utc
أُضيف في الإصدار 248.
us+utc، μs+utc
أُضيف في الإصدار 248.
أُضيف في الإصدار 247.
--mkdir
أُضيف في الإصدار 248.
--read-only
أُضيف في الإصدار 248.
--drop-in=الاسم
أُضيف في الإصدار 253.
--when=
أُضيف في الإصدار 254.
--stdin
$ systemctl edit --drop-in=limits.conf --stdin some-service.service <<EOF [Unit] AllowedCPUs=7,11 EOF
يمكن "تحرير" ملفات إيداع متعددة في هذا الوضع؛ حيث ستُكتب نفس المحتويات إليها جميعًا.
أُضيف في الإصدار 256.
-H، --host=
-M، --machine=
-C، --capsule=
أُضيف في الإصدار 256.
--no-ask-password
--no-pager
--legend=قيمة_منطقية
-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
أُضيف في الإصدارة 218.
$SYSTEMD_LOG_LEVEL
$SYSTEMD_LOG_COLOR
هذا الإعداد مفيد فقط عندما تُكتب الرسائل مباشرة إلى الطرفية، لأن journalctl(1) والأدوات الأخرى التي تعرض السجلات ستلون الرسائل بناءً على مستوى السجل من تلقاء نفسها.
$SYSTEMD_LOG_TIME
هذا الإعداد مفيد فقط عندما تُكتب الرسائل مباشرة إلى الطرفية أو إلى ملف، لأن journalctl(1) والأدوات الأخرى التي تعرض السجلات ستُرفق طوابع زمنية بناءً على البيانات الوصفية للمدخلات من تلقاء نفسها.
$SYSTEMD_LOG_LOCATION
لاحظ أن موقع السجل غالبًا ما يُرفق كبيانات وصفية بمدخلات اليوميات على أي حال. ومع ذلك، قد يكون تضمينه مباشرة في نص الرسالة مفيدًا عند تنقيح البرامج.
$SYSTEMD_LOG_TARGET
$SYSTEMD_PAGER، $PAGER
ملاحظة: إذا لم يُضبط $SYSTEMD_PAGERSECURE، فلا يمكن استخدام $SYSTEMD_PAGER و $PAGER إلا لتعطيل مستعرض الصفحات (باستخدام "cat" أو "")، ويتم تجاهلهما فيما عدا ذلك.
$SYSTEMD_LESS
قد يرغب المستخدمون في تغيير خيارين على وجه الخصوص:
K
إذا لم تتضمن قيمة $SYSTEMD_LESS الحرف "K"، وكان المستعرض المستدعى هو less، فسيُتجاهل Ctrl+C من قبل الملف التنفيذي، ويجب معالجته من قبل المستعرض.
X
لاحظ أن ضبط متغير البيئة العادي $LESS ليس له أي تأثير عند استدعاء less بواسطة أدوات systemd.
راجع less(1) لمزيد من النقاش.
$SYSTEMD_LESSCHARSET
لاحظ أن ضبط متغير البيئة العادي $LESSCHARSET ليس له أي تأثير عند استدعاء less بواسطة أدوات systemd.
$SYSTEMD_PAGERSECURE
يأخذ هذا الخيار وسيطًا منطقيًا. عند ضبطه على صحيح (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
true
false
"16"، "256"، "24bit"
"auto-16"، "auto-256"، "auto-24bit"
$SYSTEMD_URLIFY
انظر أيضًا¶
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 |