SYSTEMCTL(1) systemctl SYSTEMCTL(1)

systemctl - کنترل و مدیریت سرویس‐ها و سیستم در systemd

systemctl [گزینه‌ها...] دستور [واحد...]

از systemctl می‐توان برای بررسی و کنترل وضعیت مدیر سیستم و سرویس‐های "systemd" استفاده کرد. لطفاً برای آشنایی با مفاهیم پایه و عملکردهایی که این ابزار مدیریت می‐کند، به systemd(1) مراجعه فرمایید.

دستورات زیر پشتیبانی می‐شوند:

list-units [PATTERN...]

واحدهایی را که systemd در حال حاضر در حافظه دارد فهرست می‐کند. این شامل واحدهایی است که مستقیماً یا از طریق وابستگی ارجاع داده شده‐اند، واحدهایی که توسط برنامه‐ها به صورت نرم‐افزاری سنجاق (pin) شده‐اند، یا واحدهایی که در گذشته فعال بوده و با شکست مواجه شده‐اند. به طور پیش‐فرض، فقط واحدهایی که فعال هستند، کارهای معلق دارند یا ناموفق بوده‐اند نشان داده می‐شوند؛ این رفتار با گزینه --all قابل تغییر است. در صورت مشخص شدن یک یا چند PATTERN، تنها واحدهای منطبق با یکی از آن‐ها نمایش داده می‐شوند. واحدهای نمایش‐داده‐شده در صورت تعیین گزینه‐های --type= و --state= به صورت اضافی فیلتر می‐شوند.

توجه داشته باشید که این دستور الگوهای واحد (unit templates) را نمایش نمی‐دهد، بلکه فقط نمونه‐های الگوهای واحد را نشان می‐دهد. الگوهای واحدی که نمونه‐سازی نشده‐اند قابل اجرا نیستند و بنابراین هرگز در خروجی این دستور ظاهر نخواهند شد. به طور خاص این بدان معناست که foo@.service هرگز در این فهرست نمایش داده نخواهد شد — مگر اینکه نمونه‐سازی شده باشد، مثلاً به عنوان foo@bar.service. برای فهرست کردن فایل‐های الگوی واحد نصب‐شده از list-unit-files (در ادامه) استفاده کنید.

خروجی مشابه زیر تولید می‐کند:

  UNIT                         LOAD   ACTIVE SUB     DESCRIPTION
  sys-module-fuse.device       loaded active plugged /sys/module/fuse
  -.mount                      loaded active mounted Root Mount
  boot-efi.mount               loaded active mounted /boot/efi
  systemd-journald.service     loaded active running Journal Service
  systemd-logind.service       loaded active running Login Service
● user@1000.service            loaded failed failed  User Manager for UID 1000
  ...
  systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Directories
LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
123 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

در صورتی که ترمینال پشتیبانی کند، سربرگ و آخرین واحد از یک نوع مشخص خط‐زیرین (underline) می‐شوند. یک نقطه رنگی در کنار سرویس‐هایی که ماسک شده‐اند، پیدا نشده‐اند یا به نحوی با شکست مواجه شده‐اند نمایش داده می‐شود.

ستون LOAD وضعیت بارگذاری را نشان می‐دهد که یکی از مقادیر loaded، not-found، bad-setting، error، masked است. ستون ACTIVE وضعیت کلی واحد را نشان می‐دهد که یکی از موارد زیر است:

جدول 1. وضعیت‌های ACTIVE واحد

وضعیت توضیحات
active شروع‐شده، مقید‐شده (bound)، متصل‐شده (plugged in) و غیره، بسته به نوع واحد.
inactive متوقف‐شده، رها‐شده، جدا‐شده و غیره، بسته به نوع واحد.
failed مشابه inactive، اما واحد به نحوی با شکست مواجه شده است (پردازش هنگام خروج کد خطا بازگردانده، کرش کرده، زمان یک عملیات به پایان رسیده یا پس از راه‌اندازی‌های مجدد بیش از حد).
activating در حال تغییر از inactive به active.
deactivating در حال تغییر از active به inactive.
maintenance واحد در وضعیت inactive است و یک عملیات نگهداری در جریان است.
reloading واحد در وضعیت active است و در حال بارگذاری مجدد پیکربندی خود می‐باشد.
refreshing واحد در وضعیت active است و یک مانت (mount) جدید در فضای نام آن در حال فعال‌سازی است.

ستون SUB وضعیت دقیق وابسته به نوع واحد را نشان می‐دهد، مقادیر ممکن بسته به نوع واحد متفاوت است. فهرست وضعیت‐های ممکن LOAD، ACTIVE و SUB ثابت نیست و نسخه‐های جدید systemd ممکن است مقادیری را اضافه یا حذف کنند.

systemctl --state=help

می‐توان از این دستور برای نمایش مجموعه فعلی مقادیر مجاز استفاده کرد.

این دستور پیش‐فرض است.

list-automounts [PATTERN...]

واحدهای نصب خودکار (automount) موجود در حافظه را به ترتیب مسیر مانت فهرست می‐کند. اگر یک یا چند PATTERN مشخص شود، فقط واحدهای اتومانتی که با یکی از آن‐ها تطابق دارند نمایش داده می‐شوند. خروجی مشابه زیر تولید می‐کند:
WHAT        WHERE                    MOUNTED IDLE TIMEOUT UNIT
/dev/sdb1   /mnt/test                no      120s         mnt-test.automount
binfmt_misc /proc/sys/fs/binfmt_misc yes     0            proc-sys-fs-binfmt_misc.automount
2 automounts listed.

همچنین ببینید: --show-types، --all و --state=.

اضافه شده در نسخه 252.

list-paths [PATTERN...]

واحدهای مسیر (path) موجود در حافظه را به ترتیب مسیر فهرست می‐کند. اگر یک یا چند 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 paths listed.

همچنین ببینید: --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 sockets listed.

توجه: به دلیل اینکه آدرس‐ها ممکن است شامل فاصله باشند، این خروجی برای پردازش برنامه‌نویسی مناسب نیست.

همچنین ببینید: --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...]]

اطلاعات وضعیت زمان اجرای کل سیستم یا یک یا چند واحد را به همراه جدیدترین داده‐های گزارش (log) از ژورنال نمایش می‐دهد. اگر هیچ آرگومان موضعی مشخص نشود و فیلتر واحدی با --type=، --state= یا --failed داده نشود، وضعیت کل سیستم را نشان می‐دهد. اگر با --all ترکیب شود، به دنبال آن وضعیت تمام واحدها نمایش داده می‐شود. اگر آرگومان‐های موضعی مشخص شوند، با هر آرگومان موضعی به عنوان نام واحد برای نمایش، یا الگوی تطبیق (glob) برای نمایش واحدهایی که نامشان با آن الگو منطبق است، یا یک شناسه پردازش (PID) برای نمایش واحد حاوی آن PID رفتار می‐شود. هنگامی که از --type=، --state= یا --failed استفاده شود، واحدها علاوه بر این بر اساس TYPE و وضعیت ACTIVE فیلتر می‐شوند.

این دستور برای تولید خروجی خوانا برای انسان در نظر گرفته شده است. اگر به دنبال خروجی قابل تجزیه توسط رایانه هستید، به جای آن از show استفاده کنید. به طور پیش‐فرض، این تابع تنها 10 خط خروجی را نشان می‐دهد و خطوط را کوتاه می‐کند تا در پنجره ترمینال جا شوند. این رفتار با گزینه‐های --lines و --full قابل تغییر است. علاوه بر این، دستورات journalctl --unit=NAME یا journalctl --user-unit=NAME از فیلتر مشابهی برای پیام‐ها استفاده می‐کنند و ممکن است راحت‐تر باشند.

توجه داشته باشید که این عملیات تنها وضعیت زمان اجرا (runtime) را نشان می‐دهد، یعنی اطلاعات مربوط به اجرای فعلی واحد (اگر در حال اجرا باشد) یا جدیدترین اجرای آن (اگر دیگر اجرا نمی‐شود و از حافظه آزاد نشده باشد). اطلاعات مربوط به اجراهای قبلی، اجراهای بوت‐های قبلی سیستم، یا اجراهای پیشینی که از حافظه پاک شده‐اند را می‐توان از طریق 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" اگر فایل واحد ماسک شده باشد. این سطر همراه با نمایش مسیر فایل واحد، وضعیت فعال‐سازی (enablement) را نیز نشان می‐دهد. واحدهای فعال‐شده در شبکه وابستگی بین واحدها گنجانده می‐شوند و بدین ترتیب در هنگام بوت یا از طریق فرم دیگری از فعال‐سازی شروع به کار می‐کنند. جدول کامل وضعیت‐های فعال‐سازی ممکن — از جمله تعریف "masked" — را در مستندات دستور is-enabled مشاهده فرمایید.

سطر "Active:" وضعیت فعالیت را نشان می‐دهد. مقدار آن معمولاً "active" یا "inactive" است. فعال بودن بسته به نوع واحد می‐تواند به معنای شروع‐شده، مقید‐شده، متصل‐شده و غیره باشد. واحد همچنین ممکن است در حال تغییر وضعیت باشد و وضعیت "activating" یا "deactivating" را گزارش کند. وضعیت خاص "failed" زمانی وارد می‐شود که سرویس به نحوی با شکست مواجه شده باشد، مانند کرش کردن، خروج با کد خطا یا به پایان رسیدن مهلت زمانی (timeout). در صورت ورود به وضعیت failed، علت آن برای ارجاع بعدی در لاگ ثبت خواهد شد.

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

ویژگی‐های یک یا چند واحد، کار (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...

صفحات راهنما (manual pages) را برای یک یا چند واحد در صورت وجود نمایش می‐دهد. اگر یک PID داده شود، صفحات راهنما برای واحدی که پردازش به آن تعلق دارد نمایش داده می‐شود.

اضافه شده در نسخه 185.

list-dependencies [UNIT...]

واحدهای مورد نیاز (required) و خواسته‌شده (wanted) توسط واحدهای مشخص‌شده را نشان می‌دهد. این دستور به صورت بازگشتی واحدهای پس از وابستگی‌های Requires=، Requisite=، Wants=، ConsistsOf=، BindsTo= و Upholds= را فهرست می‌کند. اگر واحدی مشخص نشود، default.target در نظر گرفته می‌شود.

واحدهای نمایش‌داده‌شده در صورت تعیین گزینه‌های --type= و --state= به طور اضافی فیلتر می‌شوند. توجه داشته باشید که در این صورت امکان استفاده از ساختار درختی وجود نخواهد داشت، بنابراین --plain به طور ضمنی اعمال می‌شود.

به طور پیش‌فرض، فقط واحدهای هدف (target) به صورت بازگشتی بسط داده می‌شوند. هنگامی که --all ارسال شود، تمام واحدهای دیگر نیز به صورت بازگشتی بسط می‌یابند.

از گزینه‌های --reverse، --after و --before می‌توان برای تغییر انواع وابستگی‌های نمایش‌داده‌شده استفاده کرد.

توجه داشته باشید که این دستور فقط واحدهایی را فهرست می‌کند که در حال حاضر توسط مدیر سرویس در حافظه بارگذاری شده‌اند. به ویژه، این دستور برای دریافت یک فهرست جامع از تمام وابستگی‌های معکوس روی یک واحد خاص مناسب نیست، زیرا وابستگی‌های تعریف‌شده توسط واحدهایی را که در حال حاضر بارگذاری نشده‌اند فهرست نمی‌کند.

اضافه شده در نسخه 198.

start PATTERN...

شروع (فعال‌سازی) یک یا چند واحد مشخص‌شده در خط فرمان.

توجه داشته باشید که الگوهای تطبیق واحد (glob) به نام واحدهایی که در حال حاضر در حافظه هستند بسط می‌یابند. واحدهایی که فعال نیستند و در وضعیت شکست‌خورده قرار ندارند، معمولاً در حافظه نیستند و با هیچ الگویی مطابقت نخواهند داشت. علاوه بر این، در مورد واحدهای نمونه‌سازی‌شده، systemd اغلب تا زمانی که نمونه راه‌اندازی نشده باشد از نام نمونه آگاه نیست. بنابراین، استفاده از الگوهای تطبیق با start کاربرد محدودی دارد. همچنین نام‌های مستعار ثانویه واحدها در نظر گرفته نمی‌شوند.

گزینه --all ممکن است برای اعمال عملیات بر روی واحدهای غیرفعالی که توسط سایر واحدهای بارگذاری‌شده ارجاع داده شده‌اند نیز استفاده شود. توجه داشته باشید که این با کار بر روی "همه" واحدهای ممکن یکسان نیست، زیرا همانطور که در پاراگراف قبلی توضیح داده شد، چنین فهرستی نامشخص است. با این وجود، systemctl start --all GLOB ممکن است در صورتی که تمام واحدهای منطبق بر الگو توسط هدفی کشیده شده باشند که مشخص است بارگذاری شده، مفید باشد.

stop PATTERN...

متوقف کردن (غیرفعال‌سازی) یک یا چند واحد مشخص‌شده در خط فرمان.

در صورتی که واحد وجود نداشته باشد یا توقف واحد ممنوع باشد (به RefuseManualStop= در systemd.unit(5) مراجعه کنید)، این دستور با شکست مواجه می‌شود. اما اگر هر یک از دستورات پیکربندی‌شده برای متوقف کردن واحد (مانند ExecStop= و غیره) با شکست مواجه شوند، این دستور با شکست مواجه نخواهد شد، زیرا مدیر سیستم همچنان واحد را به اجبار خاتمه می‌دهد.

اگر واحدی که متوقف می‌شود همچنان بتواند توسط واحدهای دیگر راه‌اندازی (trigger) شود، هشداری حاوی نام واحدهای راه‌انداز نمایش داده می‌شود. --no-warn می‌تواند برای خاموش کردن این هشدار استفاده شود.

reload PATTERN...

از تمام واحدهای فهرست‌شده در خط فرمان درخواست می‌کند تا پیکربندی خود را دوباره بارگذاری کنند. توجه داشته باشید که این کار پیکربندی خاص سرویس را بارگذاری مجدد می‌کند، نه فایل پیکربندی واحد systemd را. اگر می‌خواهید systemd فایل پیکربندی یک واحد را مجدداً بارگذاری کند، از دستور daemon-reload استفاده کنید. به عبارت دیگر: برای مورد مثال آپاچی، این کار فایل httpd.conf آپاچی را در وب‌سرور مجدداً بارگذاری می‌کند، نه فایل واحد apache.service را در systemd.

این دستور نباید با دستور daemon-reload اشتباه گرفته شود.

restart PATTERN...

یک یا چند واحد مشخص‌شده در خط فرمان را متوقف کرده و سپس راه‌اندازی می‌کند. اگر واحدها هنوز در حال اجرا نباشند، شروع به کار خواهند کرد.

توجه داشته باشید که راه‌اندازی مجدد یک واحد با این دستور لزوماً تمام منابع واحد را قبل از شروع مجدد آن پاک نمی‌کند. به عنوان مثال، قابلیت ذخیره توصیف‌کننده فایل به ازای هر سرویس (به FileDescriptorStoreMax= در systemd.service(5) مراجعه کنید) تا زمانی که واحد یک کار در انتظار داشته باشد دست‌نخورده باقی می‌ماند، و تنها زمانی پاک می‌شود که واحد کاملاً متوقف شده و هیچ کاری در انتظار نباشد. اگر هدف این است که مخزن توصیف‌کننده فایل نیز در طول عملیات راه‌اندازی مجدد پاک شود، باید یک دستور صریح systemctl stop و به دنبال آن systemctl start صادر شود.

try-restart PATTERN...

در صورتی که واحدها در حال اجرا باشند، یک یا چند واحد مشخص‌شده در خط فرمان را متوقف کرده و دوباره راه‌اندازی می‌کند. اگر واحدها در حال اجرا نباشند، این دستور هیچ کاری انجام نمی‌دهد.

reload-or-restart PATTERN...

یک یا چند واحد را در صورت پشتیبانی مجدداً بارگذاری می‌کند. در غیر این صورت، به جای آن آن‌ها را متوقف کرده و دوباره راه‌اندازی می‌کند. اگر واحدها هنوز اجرا نشده باشند، راه‌اندازی خواهند شد.

این دستور در صورت استفاده همراه با --marked عملکرد کمی متفاوت دارد، به توضیحات آن مراجعه کنید.

try-reload-or-restart PATTERN...

یک یا چند واحد را در صورت پشتیبانی مجدداً بارگذاری می‌کند. در غیر این صورت، در صورت در حال اجرا بودن، آن‌ها را متوقف کرده و سپس راه‌اندازی مجدد می‌کند. اگر واحدها اجرا نشده باشند، هیچ کاری انجام نمی‌دهد.

اضافه شده در نسخه 229.

isolate UNIT

واحد مشخص‌شده در خط فرمان و وابستگی‌های آن را راه‌اندازی کرده و تمام واحدهای دیگر را متوقف می‌کند، مگر اینکه تنظیم IgnoreOnIsolate=yes را داشته باشند (به systemd.unit(5) مراجعه فرمایید). اگر نام واحدی بدون پسوند داده شود، پسوند ".target" در نظر گرفته می‌شود.

این دستور خطرناک است، زیرا فوراً فرآیندهایی را که در هدف جدید فعال نشده‌اند متوقف می‌کند، که احتمالاً شامل محیط گرافیکی یا ترمینالی است که در حال حاضر استفاده می‌کنید.

توجه داشته باشید که این عملیات فقط روی واحدهایی مجاز است که AllowIsolate= در آن‌ها فعال باشد. برای جزئیات به systemd.unit(5) مراجعه کنید.

kill PATTERN...

ارسال یک سیگنال پردازش یونیکس به یک یا چند فرآیند واحد. از --kill-whom= برای انتخاب فرآیندی که سیگنال به آن ارسال شود استفاده کنید. از --signal= برای انتخاب سیگنال ارسالی استفاده فرمایید. با --kill-value= ترکیب کنید تا یک سیگنال بلادرنگ (Realtime) پازیکس با مقدار مربوطه در صف قرار گیرد.

clean PATTERN...

حذف پیکربندی، وضعیت، حافظه پنهان (کَش)، گزارش‌ها (logs)، داده‌های زمان اجرا یا انبار توصیف‌کننده فایل واحدهای مشخص‌شده. از --what= برای انتخاب نوع منبع جهت حذف استفاده کنید. برای واحدهای سرویس این ممکن است برای حذف دایرکتوری‌های پیکربندی‌شده با ConfigurationDirectory=، StateDirectory=، CacheDirectory=، LogsDirectory= و RuntimeDirectory= استفاده شود؛ برای جزئیات به systemd.exec(5) مراجعه فرمایید. همچنین ممکن است برای پاک‌سازی انبار توصیف‌کننده فایل که از طریق FileDescriptorStoreMax= فعال شده استفاده شود، برای جزئیات به systemd.service(5) مراجعه فرمایید. برای واحدهای تایمر در صورتی که از Persistent= استفاده شده باشد و --what=state انتخاب شود، این ممکن است برای پاک‌سازی داده‌های برچسب زمانی پایدار استفاده شود؛ به systemd.timer(5) مراجعه فرمایید. این دستور فقط برای واحدهایی اعمال می‌شود که از هر یک از این تنظیمات استفاده می‌کنند. اگر --what= مشخص نشده باشد، داده‌های کَش و زمان اجرا و همچنین انبار توصیف‌کننده فایل حذف می‌شوند (زیرا این سه نوع منبع معمولاً افزونه بوده و در فراخوانی بعدی واحد قابل بازتولید هستند). مقادیر متعدد را می‌توان با ویرگول جدا کرد. توجه داشته باشید که برای اجرای این عملیات، واحدهای مشخص‌شده باید متوقف شده باشند.

جدول 2.  مقادیر ممکن برای --what=

مقدار تنظیمات واحد
"runtime" RuntimeDirectory=
"state" StateDirectory=
"cache" CacheDirectory=
"logs" LogsDirectory=
"configuration" ConfigurationDirectory=
"fdstore" FileDescriptorStorePreserve=
"all" تمام موارد فوق
"help" نمایش مقادیر پشتیبانی‌شده و خروج

اضافه شده در نسخه 243.

freeze PATTERN...

انجماد (تعلیق) یک یا چند واحد مشخص‌شده در خط فرمان با استفاده از فریزِر cgroup.

منجمد کردن واحد باعث می‌شود تمام فرآیندهای موجود در cgroup متناظر با واحد به حالت تعلیق درآیند. تعلیق به این معنی است که فرآیندهای واحد تا زمان رفع انجماد برای اجرا روی پردازنده زمان‌بندی نخواهند شد. توجه داشته باشید که این دستور تنها در سیستم‌هایی که از سلسله‌مراتب یکپارچه cgroup استفاده می‌کنند پشتیبانی می‌شود. واحد درست قبل از اجرای کاری علیه آن، به عنوان مثال قبل از توقف واحد، به طور خودکار از انجماد خارج می‌شود.

اضافه شده در نسخه 246.

thaw PATTERN...

رفع انجماد (خروج از حالت فریز) یک یا چند واحد مشخص‌شده در خط فرمان.

این عملیات معکوس دستور freeze است و اجرای فرآیندها را در cgroup واحد از سر می‌گیرد.

اضافه شده در نسخه 246.

set-property UNIT PROPERTY=VALUE...

تنظیم ویژگی‌های واحد مشخص‌شده در زمان اجرا در مواردی که پشتیبانی می‌شود. این اجازه می‌دهد تا ویژگی‌های پارامتر پیکربندی مانند تنظیمات کنترل منابع در زمان اجرا تغییر کنند. همه ویژگی‌ها ممکن است در زمان اجرا تغییر نکنند، اما بسیاری از تنظیمات کنترل منابع (عمدتاً موارد موجود در systemd.resource-control(5)) می‌توانند تغییر کنند. تغییرات فوراً اعمال می‌شوند و برای بوت‌های آینده روی دیسک ذخیره می‌شوند، مگر اینکه --runtime ارسال شود که در این صورت تنظیمات فقط تا راه‌اندازی مجدد بعدی اعمال می‌شوند. نحو انتساب ویژگی از نحو انتساب در فایل‌های واحد به دقت پیروی می‌کند.

مثال: systemctl set-property foobar.service CPUWeight=200

اگر به نظر برسد که واحد مشخص‌شده غیرفعال است، تغییرات تنها همان‌طور که پیش‌تر توضیح داده شد روی دیسک ذخیره می‌شوند، بنابراین هنگام راه‌اندازی واحد مؤثر خواهند بود.

توجه داشته باشید که این دستور امکان تغییر چندین ویژگی را به طور همزمان فراهم می‌کند که نسبت به تنظیم جداگانه آن‌ها ارجح است.

مثال: systemctl set-property foobar.service CPUWeight=200 MemoryMax=2G IPAccounting=yes

مانند تنظیمات پیکربندی فایل واحد، انتساب یک مقدار خالی معمولاً ویژگی را به مقادیر پیش‌فرض آن بازنشانی می‌کند.

مثال: systemctl set-property avahi-daemon.service IPAddressDeny=

اضافه شده در نسخه 206.

bind UNIT PATH [PATH]

اتصال یک فایل یا دایرکتوری (bind-mount) از میزبان به فضای نام نصب (mount namespace) واحد مشخص‌شده. آرگومان مسیر اول، فایل یا دایرکتوری مبدا در میزبان است و آرگومان مسیر دوم، فایل یا دایرکتوری مقصد در فضای نام نصب واحد است. هنگامی که مورد دوم حذف شود، مسیر مقصد در فضای نام نصب واحد همانند مسیر مبدا در میزبان خواهد بود. در صورت ترکیب با سوییچ --read-only، یک مانت اتصالی فقط‌خواندنی ایجاد می‌شود. در صورت ترکیب با سوییچ --mkdir، مسیر مقصد ابتدا قبل از اعمال مانت ایجاد می‌شود.

توجه داشته باشید که این گزینه در حال حاضر فقط برای واحدهایی پشتیبانی می‌شود که در یک فضای نام نصب اجرا می‌شوند (مثلاً با RootImage=، PrivateMounts= و غیره). این دستور از اتصال دایرکتوری‌ها، فایل‌های معمولی، گره‌های دستگاه، گره‌های سوکت AF_UNIX و همچنین FIFOها پشتیبانی می‌کند. این اتصال گذرا (ephemeral) است و به محض خروج فرآیند فعلی واحد، لغو می‌شود. توجه داشته باشید که فضای نام ذکر شده در اینجا که اتصال مانت به آن اضافه خواهد شد، فضایی است که فرآیند سرویس اصلی در آن اجرا می‌شود. فرآیندهای دیگر (آن‌هایی که توسط 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" یک واحد، این دستور ویژگی‌های متعدد دیگری را نیز به ازای هر واحد بازنشانی می‌کند: شمارنده محدودیت نرخ شروع (start rate limit) تمام انواع واحدها به صفر بازنشانی می‌شود، همان‌طور که شمارنده راه‌اندازی مجدد واحدهای سرویس نیز به صفر برمی‌گردد. بنابراین، اگر محدودیت شروع یک واحد (همان‌طور که با StartLimitIntervalSec=/StartLimitBurst= پیکربندی شده است) فعال شده باشد و واحد از راه‌اندازی مجدد امتناع ورزد، از این دستور استفاده کنید تا دوباره قابل راه‌اندازی شود.

whoami [PID...]

واحدهایی را که فرآیندهای ارجاع‌شده توسط PIDهای داده‌شده به آن‌ها تعلق دارند بازمی‌گرداند (در هر خط یک واحد). اگر PID مشخص نشود، واحدی را بازمی‌گرداند که دستور systemctl در آن فراخوانی شده است.

اضافه شده در نسخه 254.

list-unit-files [PATTERN...]

فایل‌های واحد نصب‌شده روی سیستم را همراه با وضعیت فعال‌سازی آن‌ها (همان‌طور که توسط is-enabled گزارش می‌شود) فهرست می‌کند. اگر یک یا چند PATTERN مشخص شود، فقط فایل‌های واحدی که نام آن‌ها با یکی از الگوها مطابقت دارد نشان داده می‌شوند (الگوهای منطبق با مسیرهای سیستم فایل فایل‌های واحد پشتیبانی نمی‌شوند).

برخلاف list-units، این دستور علاوه بر واحدهای صریحاً نمونه‌سازی‌شده، واحدهای الگو را نیز فهرست می‌کند.

اضافه شده در نسخه 233.

enable UNIT..., enable PATH...

یک یا چند واحد یا نمونه واحد را فعال می‌کند. این کار مجموعه‌ای از پیوندهای نمادین (symlinks) را طبق آنچه در بخش‌های [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 قابل خاموش کردن است.

اگر واحدی غیرفعال شود اما واحدهای راه‌انداز (triggering) آن هنوز فعال باشند، هشداری حاوی نام واحدهای راه‌انداز نمایش داده می‌شود. --no-warn می‌تواند برای خاموش کردن هشدار استفاده شود.

هنگامی که این دستور با --user استفاده می‌شود، واحدهای در حال ویرایش ممکن است هنوز در محدوده سراسری (global) فعال باشند، و بنابراین حتی پس از غیرفعال‌سازی موفقیت‌آمیز در محدوده کاربر، به طور خودکار شروع شوند. در این حالت، هشداری درباره آن نشان داده می‌شود که با استفاده از --no-warn می‌توان آن را نادیده گرفت.

این دستور گزینه‌های --system، --user، --runtime، --global و --no-warn را به روشی مشابه enable رعایت می‌کند.

اضافه شده در نسخه 238.

reenable UNIT...

فعال‌سازی مجدد یک یا چند واحد مشخص‌شده در خط فرمان. این ترکیبی از disable و enable است و برای بازنشانی پیوندهای نمادینی که یک فایل واحد با آن‌ها فعال شده است به مقادیر پیش‌فرض پیکربندی‌شده در بخش [Install] آن مفید است. این دستور فقط نام واحد را انتظار دارد و مسیر فایل‌های واحد را نمی‌پذیرد.

این دستور پس از اتمام عملیات، پیکربندی مدیر سیستم را به طور ضمنی مجدداً بارگذاری می‌کند. توجه داشته باشید که این دستور به صورت خودکار واحدهای غیرفعال‌شده را مجدداً راه‌اندازی نمی‌کند. در صورت تمایل، یا این دستور را با سوییچ --now ترکیب کنید، یا بعداً دستور try-restart را با آرگومان‌های مناسب فراخوانی کنید.

اضافه شده در نسخه 238.

preset UNIT...

بازنشانی وضعیت فعال/غیرفعال یک یا چند فایل واحد مشخص‌شده در خط فرمان، به مقادیر پیش‌فرض پیکربندی‌شده در فایل‌های خط‌مشی پیش‌تنظیم (preset policy). این دستور بسته به نحوه فهرست شدن واحد در فایل‌های پیش‌تنظیم، اثری مشابه 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/system/). > 0
"masked-runtime"
"static" فایل واحد فعال نشده است و هیچ پیش‌بینی برای فعال‌سازی در بخش [Install] فایل واحد ندارد. 0
"indirect" خود فایل واحد فعال نشده است، اما دارای تنظیم غیرخالی Also= در بخش [Install] است که فایل‌های واحد دیگری را که ممکن است فعال باشند فهرست می‌کند، یا دارای نام مستعار تحت نام دیگری از طریق پیوند نمادین است که در Also= مشخص نشده است. برای فایل‌های الگوی واحد، نمونه‌ای غیر از نمونه مشخص‌شده در DefaultInstance= فعال است. 0
"disabled" فایل واحد فعال نشده است، اما شامل بخش [Install] همراه با دستورالعمل‌های نصب است. > 0
"generated" فایل واحد به طور پویا از طریق یک ابزار مولد (generator) تولید شده است. به systemd.generator(7) مراجعه کنید. فایل‌های واحد تولیدشده ممکن است فعال نشوند، آن‌ها به طور ضمنی توسط مولد خود فعال می‌شوند. 0
"transient" فایل واحد به صورت پویا با API زمان اجرا ایجاد شده است. واحدهای گذرا ممکن است فعال نشوند. 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...

بازگردانی یک یا چند فایل واحد به نسخه ارائه‌شده توسط توزیع‌کننده (vendor). این دستور فایل‌های پیکربندی افزایشی (drop-in) که واحدهای مشخص‌شده را تغییر می‌دهند، و همچنین هر فایل واحد پیکربندی‌شده توسط کاربر که جایگزین فایل واحد توزیع می‌شود را حذف می‌کند. به طور مشخص، برای یک واحد "foo.service"، پوشه‌های منطبق "foo.service.d/" همراه با تمام فایل‌های داخل آن‌ها، هم در پوشه‌های پیکربندی پایدار و هم زمان اجرا (یعنی زیر /etc/systemd/system و /run/systemd/system) حذف می‌شوند؛ اگر فایل واحد دارای نسخه‌ای ارائه‌شده توسط توزیع باشد (یعنی فایل واحدی زیر /usr/) هر فایل واحد پایدار یا زمان اجرای منطبق که آن را بازنویسی (override) کرده باشد نیز حذف می‌شود. توجه داشته باشید اگر یک فایل واحد فاقد نسخه توزیع‌کننده باشد (یعنی فقط زیر /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/ ویرایش کنید، زیرا اولویت با /etc/ است.

اضافه شده در نسخه 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، ارقام و کاراکتر زیرخط (underscore) باشد. نام متغیرها نمی‌تواند خالی باشد یا با یک رقم شروع شود. در مقادیر متغیرها، اکثر کاراکترها مجاز هستند، اما کل دنباله باید UTF-8 معتبر باشد. (توجه داشته باشید که کاراکترهای کنترلی مانند خط جدید (NL)، تب (TAB) یا کاراکتر اسکیپ (ESC)، همگی اسکی معتبر و در نتیجه UTF-8 معتبر هستند). طول کل بلوک محیطی به مقدار _SC_ARG_MAX تعریف‌شده توسط sysconf(3) محدود است.

show-environment

تخلیه (چاپ) بلوک محیطی مدیر systemd. این بلوک محیطی است که به تمام فرآیندهای تولیدشده توسط مدیر سیستم منتقل می‌شود. بلوک محیطی در قالبی سرراست و مناسب برای وارد کردن (source) در اکثر شل‌ها چاپ می‌شود. اگر هیچ کاراکتر خاص یا فاصله‌ای در مقادیر متغیرها وجود نداشته باشد، هیچ اسکیپی انجام نمی‌شود و انتساب‌ها به شکل "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 ارائه شود، دستور سطح لاگ فعلی مدیر را به 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) مراجعه کنید. واچ‌داگ سخت‌افزاری تحت تأثیر این تنظیم قرار نمی‌گیرد.

اضافه شده در نسخه 244.

is-system-running

بررسی می‌کند که آیا سیستم عملیاتی است یا خیر. در صورتی که سیستم کاملاً بالا آمده و در حال اجرا باشد، به ویژه در حالت‌های راه‌اندازی (startup)، خاموش شدن (shutdown) یا نگهداری (maintenance) نباشد و هیچ سرویس ناموفقی نداشته باشد، موفقیت (کد خروج 0) بازگردانده می‌شود. در غیر این صورت عدم موفقیت (کد خروج غیرصفر) بازگردانده می‌شود. علاوه بر این، وضعیت فعلی در یک رشته کوتاه در خروجی استاندارد چاپ می‌شود، به جدول زیر مراجعه کنید. از --quiet برای خاموش کردن این خروجی استفاده کنید.

از --wait برای صبر کردن تا زمان تکمیل فرآیند بوت قبل از چاپ وضعیت فعلی و بازگرداندن وضعیت خطای مناسب استفاده کنید. اگر --wait استفاده شود، وضعیت‌های initializing یا starting گزارش نمی‌شوند، بلکه دستور تا زمان رسیدن به وضعیت بعدی (مانند running یا degraded) مسدود (block) خواهد ماند.

جدول 4.  خروجی is-system-running

نام توضیحات کد خروج
initializing مراحل اولیه بوت، قبل از رسیدن به basic.target یا ورود به وضعیت maintenance. > 0
starting مراحل پایانی بوت، قبل از اینکه صف کارها برای اولین بار بیکار شود، یا رسیدن به یکی از اهداف امداد (rescue). > 0
running سیستم کاملاً عملیاتی و فعال است. 0
degraded سیستم عملیاتی است اما یک یا چند واحد با شکست مواجه شده‌اند. > 0
maintenance هدف امداد (rescue) یا اضطراری (emergency) فعال است. > 0
stopping مدیر سیستم در حال خاموش شدن است. > 0
offline مدیر سیستم در حال اجرا نیست. به طور خاص، اگر برنامه‌ای ناسازگار به عنوان مدیر سیستم (PID 1) اجرا شود، این وضعیت عملیاتی گزارش می‌شود. > 0
unknown به دلیل کمبود منابع یا علت خطای دیگر، وضعیت عملیاتی قابل تعیین نیست. > 0

اضافه شده در نسخه 215.

default

ورود به حالت پیش‌فرض. این معادل با systemctl isolate default.target است. این عملیات به طور پیش‌فرض مسدودکننده (blocking) است؛ برای درخواست رفتار ناهمگام (asynchronous) از --no-block استفاده کنید.

rescue

ورود به حالت امداد (rescue mode). این معادل با systemctl isolate rescue.target است. این عملیات به طور پیش‌فرض همگام و مسدودکننده است؛ برای رفتار ناهمگام از --no-block استفاده فرمایید.

emergency

ورود به حالت اضطراری (emergency mode). این معادل با systemctl isolate emergency.target است. این عملیات به طور پیش‌فرض همگام و مسدودکننده است؛ برای رفتار ناهمگام از --no-block استفاده کنید.

halt

خاموش کردن و متوقف ساختن سیستم (halt). این دستور عمدتاً معادل با systemctl start halt.target --job-mode=replace-irreversibly --no-block است، اما همچنین یک پیام همگانی (wall message) برای تمام کاربران ارسال می‌کند. این دستور ناهمگام است؛ پس از قرار گرفتن عملیات توقف در صف بازمی‌گردد، بدون اینکه منتظر اتمام آن بماند. توجه داشته باشید که این عملیات پس از خاموش کردن سیستم‌عامل صرفاً هسته را متوقف می‌کند و سخت‌افزار را روشن رها می‌سازد. برای قطع کامل برق سیستم از systemctl poweroff استفاده کنید (به ادامه مراجعه فرمایید).

اگر با --force ترکیب شود، خاموش شدن تمام سرویس‌های در حال اجرا نادیده گرفته می‌شود، اما تمام فرآیندها کشته شده و تمام سیستم‌های فایل پیاده‌سازی (unmount) یا به صورت فقط‌خواندنی سوار می‌شوند و بلافاصله سیستم متوقف می‌گردد. اگر --force دو بار مشخص شود، عملیات فوراً بدون پایان دادن به هیچ فرآیندی یا پیاده کردن هیچ سیستم فایلی اجرا می‌شود. این کار ممکن است منجر به از دست رفتن داده‌ها شود. توجه داشته باشید هنگامی که --force دو بار مشخص شود، عملیات halt توسط خود systemctl اجرا می‌شود و با مدیر سیستم ارتباطی برقرار نمی‌گردد. این بدان معنی است که دستور حتی در صورت کرش کردن مدیر سیستم باید با موفقیت اجرا شود.

اگر با --when= ترکیب شود، خاموش شدن برای پس از برچسب زمانی داده‌شده زمان‌بندی می‌شود. و --when=cancel خاموش‌سازی زمان‌بندی‌شده را لغو می‌کند.

poweroff

خاموش کردن و قطع برق سیستم. این عمدتاً معادل با systemctl start poweroff.target --job-mode=replace-irreversibly --no-block است، اما همچنین یک پیام همگانی به همه کاربران ارسال می‌کند. این دستور ناهمگام است؛ پس از اینکه عملیات قطع برق در صف قرار گرفت بازمی‌گردد، بدون آنکه منتظر تکمیل آن بماند.

این دستور گزینه‌های --force و --when= را به روشی مشابه halt رعایت می‌کند.

reboot

خاموش کردن و راه‌اندازی مجدد (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.

برای بارگذاری یک هسته، یک شمارش بر اساس Boot Loader Specification[1] انجام می‌شود و مدخل بوت پیش‌فرض بارگذاری می‌گردد. برای موفقیت این مرحله، سیستم باید از UEFI استفاده کند و مدخل‌های بوت‌لودر به درستی پیکربندی شده باشند. از bootctl list می‌توان برای فهرست کردن مدخل‌های بوت استفاده کرد، به bootctl(1) مراجعه کنید.

این دستور ناهمگام است؛ پس از قرار گرفتن عملیات ریبوت در صف بازمی‌گردد، بدون آنکه منتظر تکمیل آن بماند.

این دستور گزینه‌های --force و --when= را مشابه halt رعایت می‌کند.

اگر یک هسته جدید از طریق kexec --load بارگذاری شده باشد، هنگامی که reboot فراخوانی شود یک kexec انجام خواهد شد، مگر اینکه "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/" راه‌اندازی شده باشد، هنگامی که reboot فراخوانی شود یک soft-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) سیستم. این کار فعال‌سازی واحد هدف ویژه suspend.target را تحریک می‌کند. این دستور ناهمگام است و پس از قرار گرفتن موفقیت‌آمیز عملیات تعلیق در صف بازمی‌گردد. منتظر اتمام چرخه تعلیق/ازسرگیری نخواهد ماند.

اگر --force مشخص شده باشد و systemd-logind خطایی برای عملیات برگرداند، خطا نادیده گرفته شده و عملیات مجدداً مستقیماً از طریق راه‌اندازی واحد هدف امتحان خواهد شد.

hibernate

خواب زمستانی (hibernate) سیستم. این کار فعال‌سازی واحد هدف ویژه hibernate.target را تحریک می‌کند. این دستور ناهمگام است و پس از قرار گرفتن موفقیت‌آمیز عملیات هایبرنیت در صف بازمی‌گردد. منتظر اتمام چرخه هایبرنیت/بیداری نخواهد ماند.

این دستور --force را به همان روش suspend رعایت می‌کند.

hybrid-sleep

خواب زمستانی و تعلیق ترکیبی سیستم (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

در حالت دوم، الگوهای فراگیر به سبک شل (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" باشد. مگر اینکه مشخص شده باشد، تمام ویژگی‌های شناخته‌شده نمایش داده می‌شوند. در صورت تعیین چندباره، تمام ویژگی‌های با نام‌های مشخص‌شده نمایش داده خواهند شد. تکمیل خودکار پوسته (Shell completion) برای نام‌های ویژگی پیاده‌سازی شده است.

برای خود مدیر سیستم، systemctl show تمام ویژگی‌های موجود را نشان می‌دهد که بیشتر آن‌ها مشتق شده یا دقیقاً منطبق بر گزینه‌های توصیف‌شده در systemd-system.conf(5) هستند.

ویژگی‌های واحدها بر اساس نوع واحد متفاوت است، بنابراین نمایش هر واحد (حتی یک واحد ناموجود) راهی برای فهرست کردن ویژگی‌های مربوط به آن نوع است. به طور مشابه، نمایش هر کاری ویژگی‌های مربوط به همه کارها را فهرست می‌کند. ویژگی‌های واحدها در systemd.unit(5) و صفحات راهنمای انواع واحدهای منفرد مانند systemd.service(5)، systemd.socket(5) و غیره مستند شده‌اند.

-P

معادل با --value --property= است، یعنی مقدار ویژگی را بدون نام ویژگی یا "=" نمایش می‌دهد. توجه داشته باشید که استفاده یک‌باره از -P بر تمام ویژگی‌های فهرست‌شده با -p/--property= نیز تأثیر می‌گذارد.

اضافه شده در نسخه 246.

-a, --all

هنگام فهرست کردن واحدها با list-units، واحدهای غیرفعال و واحدهایی را که واحدهای دیگر را دنبال می‌کنند نیز نمایش می‌دهد. هنگام نمایش ویژگی‌های واحد/کار/مدیر، تمام ویژگی‌ها را صرف‌نظر از تنظیم بودن یا نبودن آن‌ها نشان می‌دهد.

برای فهرست کردن تمام واحدهای نصب‌شده در سیستم فایل، به جای آن از دستور list-unit-files استفاده فرمایید.

هنگام فهرست کردن واحدها با list-dependencies، وابستگی‌های تمام واحدهای وابسته را به صورت بازگشتی نمایش می‌دهد (به طور پیش‌فرض فقط وابستگی‌های واحدهای هدف نشان داده می‌شوند).

هنگام استفاده با status، پیام‌های ژورنال را به طور کامل نشان می‌دهد، حتی اگر شامل کاراکترهای غیرقابل چاپ باشند یا بسیار طولانی باشند. به طور پیش‌فرض، فیلدهای دارای کاراکترهای غیرقابل چاپ به صورت "blob data" خلاصه می‌شوند. (توجه داشته باشید که صفحه‌بند ممکن است کاراکترهای غیرقابل چاپ را دوباره اسکیپ کند).

-r, --recursive

هنگام فهرست کردن واحدها، واحدهای کانتینرهای محلی را نیز نشان می‌دهد. واحدهای کانتینرهای محلی با نام کانتینر پیشوند می‌خورند که با یک کاراکتر دو‌نقطه (":") جدا می‌شود.

اضافه شده در نسخه 212.

--reverse

نمایش وابستگی‌های معکوس بین واحدها با list-dependencies، یعنی دنبال کردن وابستگی‌هایی از نوع WantedBy=، RequiredBy=، UpheldBy=، PartOf=، BoundBy= به جای Wants= و مانند آن.

اضافه شده در نسخه 203.

--after

همراه با list-dependencies، واحدهایی را نشان می‌دهد که قبل از واحد مشخص‌شده مرتب شده‌اند. به عبارت دیگر، واحدهای پس از وابستگی After= را به صورت بازگشتی فهرست می‌کند.

توجه داشته باشید که هر وابستگی After= به طور خودکار برای ایجاد یک وابستگی Before= منعکس می‌شود. وابستگی‌های زمانی ممکن است به صراحت مشخص شوند، اما به طور ضمنی نیز برای واحدهایی که اهداف WantedBy= هستند ایجاد می‌شوند (به systemd.target(5) مراجعه کنید)، و در نتیجه سایر دستورالعمل‌ها (برای مثال RequiresMountsFor=) نیز به وجود می‌آیند. هر دو نوع وابستگی صریح و ضمنی با list-dependencies نمایش داده می‌شوند.

هنگامی که به دستور list-jobs منتقل شود، برای هر کار چاپ‌شده نشان می‌دهد که چه کارهای دیگری منتظر آن هستند. ممکن است با --before ترکیب شود تا هم کارهایی که منتظر هر کار هستند و هم تمام کارهایی که هر کار منتظر آن‌ها است نشان داده شوند.

اضافه شده در نسخه 203.

--before

همراه با list-dependencies، واحدهایی را نشان می‌دهد که بعد از واحد مشخص‌شده مرتب شده‌اند. به عبارت دیگر، واحدهای پیرو وابستگی Before= را به صورت بازگشتی فهرست می‌کند.

هنگامی که به دستور list-jobs ارسال شود، برای هر کار چاپ‌شده نشان می‌دهد که منتظر چه کارهای دیگری است. ممکن است با --after ترکیب شود تا هم کارهای در انتظار و هم کارهای مورد انتظار را نمایش دهد.

اضافه شده در نسخه 212.

--with-dependencies

هنگامی که با status، cat، list-units و list-unit-files استفاده شود، آن دستورات تمام واحدهای مشخص‌شده و وابستگی‌های آن واحدها را چاپ می‌کنند.

گزینه‌های --reverse، --after، --before ممکن است برای تغییر انواع وابستگی‌های نمایش‌داده‌شده استفاده شوند.

اضافه شده در نسخه 245.

-l, --full

نام واحدها، ورودی‌های درخت فرآیند، خروجی ژورنال یا توصیف‌های واحد را در خروجی status، list-units، list-jobs و list-timers خلاصه و کوتاه (ellipsize) نمی‌کند.

همچنین اهداف نصب را در خروجی is-enabled نشان می‌دهد.

--value

هنگام چاپ ویژگی‌ها با show، فقط مقدار را چاپ کرده و نام ویژگی و "=" را رد می‌کند. همچنین گزینه -P در بالا را ببینید.

اضافه شده در نسخه 230.

--show-types

هنگام نمایش سوکت‌ها، نوع سوکت را نشان می‌دهد.

اضافه شده در نسخه 202.

--job-mode=

هنگام قرار دادن یک کار جدید در صف، این گزینه نحوه برخورد با کارهای قبلاً در صف قرار گرفته را کنترل می‌کند. یکی از مقادیر "fail"، "replace"، "replace-irreversibly"، "isolate"، "ignore-dependencies"، "ignore-requirements"، "flush"، "triggering" یا "restart-dependencies" را می‌پذیرد. به طور پیش‌فرض روی "replace" قرار دارد، به جز زمانی که از دستور isolate استفاده شود که به طور ضمنی حالت کار "isolate" را اعمال می‌کند.

اگر "fail" مشخص شود و عملیات درخواستی با یک کار معلق تداخل داشته باشد (به طور خاص: باعث شود یک کار شروع معلق به یک کار توقف یا بالعکس تبدیل شود)، باعث شکست عملیات می‌شود.

اگر "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) غیرفعال می‌کند.

برنامه‌ها می‌توانند قفل‌های بازدارنده ایجاد کنند تا از قطع شدن برخی عملیات مهم (مانند سوزاندن CD) توسط خاموش شدن سیستم یا خواب جلوگیری نمایند. هر کاربری می‌تواند این قفل‌ها را بگیرد و کاربران دارای امتیاز می‌توانند این قفل‌ها را نادیده بگیرند. اگر قفلی گرفته شده باشد، درخواست‌های خاموش شدن و وضعیت خواب به طور معمول با شکست مواجه می‌شوند (مگر اینکه صراحتاً با "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) سرکوب نمی‌کند. خطاها همیشه چاپ می‌شوند.

--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

فهرست کردن واحدهای در وضعیت ناموفق (failed). این معادل است با --state=failed.

اضافه شده در نسخه 233.

--no-wall

قبل از توقف کامل (halt)، قطع برق (power-off) و راه‌اندازی مجدد (reboot) پیام همگانی (wall message) ارسال نمی‌کند.

--global

هنگام استفاده با enable و disable، بر روی دایرکتوری پیکربندی سراسری کاربر عمل می‌کند، بنابراین یک فایل واحد را به صورت سراسری برای تمام ورودهای آینده همه کاربران فعال یا غیرفعال می‌نماید.

--no-reload

هنگام استفاده با enable، disable، preset، mask یا unmask، پس از اجرای تغییرات به طور ضمنی پیکربندی دیمن را بازخوانی نمی‌کند.

--kill-whom=

هنگام استفاده با kill، فرآیندهایی را برای ارسال سیگنال پردازش یونیکس انتخاب می‌کند. باید یکی از گزینه‌های main، control یا all باشد تا مشخص کند که فقط فرآیند اصلی، فرآیند کنترلی یا تمام فرآیندهای واحد کشته شوند. فرآیند اصلی واحد فرآیندی است که طول عمر آن را تعریف می‌کند. یک فرآیند کنترلی فرآیندی است که توسط مدیر برای القای تغییرات وضعیت در آن فراخوانی می‌شود. به عنوان مثال، تمام فرآیندهایی که به دلیل تنظیمات ExecStartPre=، ExecStop= یا ExecReload= واحدهای سرویس شروع می‌شوند، فرآیندهای کنترلی هستند. توجه داشته باشید که در هر زمان تنها یک فرآیند کنترلی به ازای هر واحد وجود دارد، زیرا در هر زمان تنها یک تغییر وضعیت اجرا می‌شود. برای سرویس‌هایی از نوع Type=forking، فرآیند اولیه شروع‌شده توسط مدیر برای ExecStart= یک فرآیند کنترلی است، در حالی که فرآیندی که در نهایت توسط آن منشعب می‌شود به عنوان فرآیند اصلی واحد در نظر گرفته می‌شود (اگر قابل تعیین باشد). این برای واحدهای سرویس سایر انواع متفاوت است، جایی که فرآیند منشعب‌شده توسط مدیر برای ExecStart= همیشه خود فرآیند اصلی است. یک واحد سرویس شامل صفر یا یک فرآیند اصلی، صفر یا یک فرآیند کنترلی به علاوه هر تعداد فرآیند اضافی است. با این حال، همه انواع واحدها فرآیندهایی از این انواع را مدیریت نمی‌کنند. به عنوان مثال، برای واحدهای مانت، فرآیندهای کنترلی تعریف شده‌اند (که فراخوانی‌های /usr/bin/mount و /usr/bin/umount هستند)، اما فرآیند اصلی تعریف نشده است. در صورت حذف، پیش‌فرض روی all است.

اضافه شده در نسخه 252.

--kill-value=INT

در صورت استفاده با دستور kill، یک سیگنال را همراه با پارامتر مقدار عدد صحیح مشخص‌شده برای فرآیند(های) معین در صف قرار می‌دهد. این عملیات فقط برای سیگنال‌های بلادرنگ (Realtime) پازیکس در دسترس است (یعنی --signal=SIGRTMIN+... یا --signal=SIGRTMAX-...)، و تضمین می‌کند که سیگنال‌ها از طریق فراخوانی سیستمی sigqueue(3) به جای kill(3) تولید می‌شوند. مقدار مشخص‌شده باید یک عدد صحیح علامت‌دار 32 بیتی باشد و می‌تواند به صورت ده‌دهی، شانزده‌شانزدهی (با پیشوند "0x")، هشت‌هشتی (با پیشوند "0o") یا دودویی (با پیشوند "0b") مشخص شود.

در صورت استفاده از این گزینه، سیگنال تنها برای فرآیند کنترلی یا اصلی واحد در صف قرار می‌گیرد و هرگز برای سایر فرآیندهای متعلق به واحد ارسال نخواهد شد؛ یعنی --kill-whom=all تنها بر فرآیندهای اصلی و کنترلی تأثیر می‌گذارد و نه بر هیچ فرآیند دیگری.

اضافه شده در نسخه 254.

-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، عملیات انتخاب‌شده را بدون خاموش کردن همه واحدها اجرا می‌کند. با این حال، تمام فرآیندها به اجبار کشته می‌شوند و تمام سیستم‌های فایل پیاده (unmount) یا دوباره به صورت فقط‌خواندنی متصل می‌شوند. بنابراین این یک گزینه شدید اما نسبتاً ایمن برای درخواست راه‌اندازی مجدد فوری است. اگر --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 بر اساس Discoverable Partitions Specification[2]. برای اطلاعات بیشتر در مورد ایمیج‌های دیسک پشتیبانی‌شده، به سوییچ همنام در systemd-nspawn(1) مراجعه کنید.

اضافه شده در نسخه 252.

--image-policy=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، به سفت‌افزار سیستم اعلام می‌کند که برای بوت بعدی وارد رابط تنظیمات سفت‌افزار (BIOS/UEFI setup) شود. توجه داشته باشید که این قابلیت در تمام سیستم‌ها در دسترس نیست.

اضافه شده در نسخه 220.

--boot-loader-menu=timeout

هنگام استفاده با دستورات reboot، poweroff یا halt، به لودر بوت سیستم اعلام می‌کند که منوی بوت‌لودر را در بوت بعدی نشان دهد. یک مقدار زمانی به عنوان پارامتر می‌گیرد — که مهلت زمانی منو را مشخص می‌کند. برای غیرفعال کردن مهلت زمانی منو عدد صفر را وارد کنید. توجه داشته باشید که همه بوت‌لودرها از این قابلیت پشتیبانی نمی‌کنند.

اضافه شده در نسخه 242.

--boot-loader-entry=ID

هنگام استفاده با دستورات reboot، poweroff یا halt، به بوت‌لودر سیستم اعلام می‌کند که در بوت بعدی با یک ورودی بوت‌لودر مشخص بوت شود. یک شناسه ورودی بوت‌لودر را به عنوان آرگومان، یا "help" را برای فهرست کردن ورودی‌های موجود دریافت می‌کند. توجه داشته باشید که تمام بوت‌لودرها از این عملکرد پشتیبانی نمی‌کنند.

اضافه شده در نسخه 242.

--reboot-argument=

این سوییچ با reboot استفاده می‌شود. مقدار آن وابسته به معماری و سفت‌افزار است. برای مثال، "recovery" ممکن است برای فعال کردن بازیابی سیستم، و "fota" برای به‌روزرسانی سفت‌افزار از راه دور (firmware over the air) استفاده شود.

اضافه شده در نسخه 246.

--plain

هنگام استفاده با list-dependencies، list-units یا list-machines، خروجی به جای درخت به صورت یک فهرست چاپ می‌شود و دایره‌های گلوله‌ای حذف می‌شوند.

اضافه شده در نسخه 203.

--timestamp=

قالب برچسب‌های زمانی چاپ‌شده را تغییر می‌دهد. مقادیر زیر می‌توانند استفاده شوند:

pretty (پیش‌فرض است)

"Day YYYY-MM-DD HH:MM:SS TZ"

اضافه شده در نسخه 248.

unix

"@seconds-since-the-epoch"

اضافه شده در نسخه 251.

us, μs

"Day YYYY-MM-DD HH:MM:SS.UUUUUU TZ"

اضافه شده در نسخه 248.

utc

"Day YYYY-MM-DD HH:MM:SS UTC"

اضافه شده در نسخه 248.

us+utc, μs+utc

"Day YYYY-MM-DD HH:MM:SS.UUUUUU UTC"

اضافه شده در نسخه 248.

اضافه شده در نسخه 247.

--mkdir

هنگام استفاده با bind، فایل یا دایرکتوری مقصد را قبل از اعمال مانت اتصالی ایجاد می‌کند. توجه داشته باشید هرچند نام این گزینه بیانگر مناسب بودن آن فقط برای دایرکتوری‌ها است، اما اگر شیء مورد نظر برای مانت یک دایرکتوری نباشد بلکه یک فایل معمولی، گره دستگاه، سوکت یا FIFO باشد، گره فایل مقصد را نیز ایجاد خواهد کرد.

اضافه شده در نسخه 248.

--marked

فقط همراه با reload-or-restart مجاز است. کارهای راه‌اندازی مجدد را برای تمام واحدهایی که دارای علامت "needs-restart" هستند و کارهای بارگذاری مجدد را برای واحدهایی که علامت "needs-reload" دارند در صف قرار می‌دهد. هنگامی که یک واحد علامت‌گذاری‌شده برای بارگذاری مجدد از بارگذاری پشتیبانی نکند، راه‌اندازی مجدد در صف قرار می‌گیرد. این ویژگی‌ها را می‌توان با استفاده از set-property Markers=... تنظیم کرد.

مگر اینکه از --no-block استفاده شود، systemctl منتظر می‌ماند تا کارهای در صف به پایان برسند.

اضافه شده در نسخه 248.

--read-only

هنگام استفاده با bind، یک مانت اتصالی فقط‌خواندنی ایجاد می‌کند.

اضافه شده در نسخه 248.

--drop-in=NAME

هنگام استفاده با edit، از NAME به عنوان نام فایل drop-in به جای override.conf استفاده می‌کند.

اضافه شده در نسخه 253.

--when=

هنگام استفاده با halt، poweroff، reboot یا kexec، اجرای اقدام را برای برچسب زمانی داده‌شده زمان‌بندی می‌کند، که باید از نحوی که در systemd.time(7) بخش "PARSING TIMESTAMPS" مستند شده پیروی کند. به طور ویژه، اگر "show" داده شود، اقدام زمان‌بندی‌شده فعلی نمایش داده می‌شود که می‌توان با ارسال رشته خالی یا "cancel" آن را لغو کرد. "auto" اقدام را طبق بازه نگهداری یا یک دقیقه در آینده زمان‌بندی خواهد کرد.

اضافه شده در نسخه 254.

--stdin

هنگام استفاده با edit، محتویات فایل از ورودی استاندارد خوانده شده و ویرایشگر باز نخواهد شد. در این حالت، محتویات قبلی فایل به طور کامل جایگزین می‌شوند. این برای "ویرایش" فایل‌های واحد از طریق اسکریپت‌ها مفید است:
$ systemctl edit --drop-in=limits.conf --stdin some-service.service <<EOF
[Unit]
AllowedCPUs=7,11
EOF

چندین drop-in می‌توانند در این حالت "ویرایش" شوند؛ محتوای یکسان در همه آن‌ها نوشته خواهد شد.

اضافه شده در نسخه 256.

-H, --host=

عملیات را از راه دور اجرا می‌کند. یک نام میزبان (hostname) یا یک نام کاربری و نام میزبان را که با "@" جدا شده‌اند مشخص کنید. نام میزبان ممکن است اختیاری با پورتی که ssh روی آن شنود می‌کند با پسوند ":" و سپس نام کانتینر جداشده با "/" دنبال شود که مستقیماً به یک کانتینر خاص روی میزبان مشخص‌شده متصل می‌گردد. این کار از SSH برای گفتگو با نمونه مدیر ماشین راه دور استفاده می‌کند. نام کانتینرها را می‌توان با machinectl -H HOST شمارش کرد. آدرس‌های IPv6 را داخل براکت قرار دهید.

-M, --machine=

عملیات را روی یک کانتینر محلی اجرا می‌کند. یک نام کانتینر را برای اتصال مشخص کنید، که اختیاری می‌تواند با یک نام کاربری برای اتصال و کاراکتر جداکننده "@" پیشوند بخورد. اگر رشته خاص ".host" به جای نام کانتینر استفاده شود، اتصالی به سیستم محلی برقرار می‌شود (که برای اتصال به گذرگاه کاربری یک کاربر خاص مفید است: "--user --machine=lennart@.host"). اگر نحو "@" استفاده نشود، اتصال به عنوان کاربر root برقرار می‌شود. اگر از نحو "@" استفاده شود، هر یک از سمت چپ یا سمت راست ممکن است حذف شوند (اما نه هر دو) که در این حالت نام کاربر محلی و ".host" ضمنی هستند.

-C, --capsule=

عملیات را روی یک کپسول (capsule) اجرا می‌کند. یک نام کپسول را برای اتصال مشخص کنید. برای جزئیات در مورد کپسول‌ها به capsule@.service(5) مراجعه کنید.

اضافه شده در نسخه 256.

--no-ask-password

از کاربر برای احراز هویت جهت انجام عملیات دارای امتیاز سؤال نمی‌پرسد.

--no-pager

خروجی را به یک صفحه‌بند (pager) هدایت نمی‌کند.

--legend=BOOL

چاپ راهنما (legend)، یعنی سربرگ‌های ستون و پاورقی همراه با نکات راهنما را فعال یا غیرفعال می‌کند. راهنما به طور پیش‌فرض چاپ می‌شود، مگر اینکه با --quiet یا مشابه آن غیرفعال شده باشد.

-h, --help

یک متن راهنمای کوتاه را چاپ کرده و خارج می‌شود.

--version

یک رشته نسخه کوتاه را چاپ کرده و خارج می‌شود.

در صورت موفقیت 0، و در غیر این صورت یک کد شکست غیرصفر بازگردانده می‌شود.

systemctl از کدهای بازگشتی تعریف‌شده توسط LSB استفاده می‌کند، همان‌طور که در LSB 3.0.0[3] تعریف شده است.

جدول 5.  کدهای بازگشتی LSB

مقدار توضیحات در LSB کاربرد در systemd
0 "برنامه در حال اجراست یا سرویس سالم است" واحد فعال است (unit is active)
1 "برنامه مرده است و فایل pid در /var/run وجود دارد" واحد ناموفق نیست (استفاده‌شده توسط is-failed)
2 "برنامه مرده است و فایل قفل در /var/lock وجود دارد" استفاده‌نشده
3 "برنامه در حال اجرا نیست" واحد فعال نیست (unit is not active)
4 "وضعیت برنامه یا سرویس نامشخص است" چنین واحدی وجود ندارد (no such unit)

تطبیق وضعیت‌های سرویس 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

یک مقدار بولی. در صورت درست (true) بودن، پیام‌های نوشته‌شده در tty بر اساس اولویت رنگ‌آمیزی می‌شوند.

این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال نوشته شوند، زیرا journalctl(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خودشان پیام‌ها را بر اساس سطح لاگ رنگ‌آمیزی می‌کنند.

$SYSTEMD_LOG_TIME

یک مقدار بولی. در صورت درست بودن، پیام‌های لاگ کنسول با یک برچسب زمانی پیشوند می‌خورند.

این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال یا یک فایل نوشته شوند، زیرا journalctl(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خودشان بر اساس فراداده‌های ورودی برچسب‌های زمانی را پیوست می‌کنند.

$SYSTEMD_LOG_LOCATION

یک مقدار بولی. در صورت درست بودن، پیام‌ها با نام فایل و شماره خط در کد منبع که پیام از آن سرچشمه می‌گیرد پیشوند می‌خورند.

توجه داشته باشید که مکان لاگ اغلب به هر حال به عنوان فراداده به ورودی‌های ژورنال پیوست می‌شود. با این وجود، گنجاندن مستقیم آن در متن پیام هنگام اشکال‌زدایی برنامه‌ها می‌تواند راحت باشد.

$SYSTEMD_LOG_TARGET

مقصد پیام‌های گزارش (log). یکی از مقادیر زیر است: console (ثبت لاگ در tty متصل‌شده)، console-prefixed (ثبت لاگ در tty متصل اما با پیشوندهایی که سطح لاگ و بخش ("facility") را کدگذاری می‌کنند، به 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

دستورات رایج صفحه‌بند مانند less(1)، علاوه بر "صفحه‌بندی"، یعنی پیمایش در خروجی، از باز کردن یا نوشتن در فایل‌های دیگر و اجرای دستورات دلخواه شل پشتیبانی می‌کنند. هنگامی که دستورات با امتیازات بالا، به عنوان مثال تحت sudo(8) یا pkexec(1) فراخوانی می‌شوند، صفحه‌بند به یک مرز امنیتی تبدیل می‌شود. باید دقت شود که فقط برنامه‌هایی با عملکردهای به شدت محدود به عنوان صفحه‌بند استفاده شوند و ویژگی‌های تعاملی ناخواسته مانند باز کردن یا ایجاد فایل‌های جدید یا شروع فرآیندهای فرعی مجاز نباشند. "حالت امن" برای صفحه‌بند ممکن است همان‌طور که در زیر توضیح داده شده فعال شود، در صورتی که صفحه‌بند از آن پشتیبانی کند (اکثر صفحه‌بندها به گونه‌ای نوشته نشده‌اند که این موضوع را در نظر بگیرند). توصیه می‌شود هنگام اجازه دادن به کاربران غیرقابل اعتماد برای اجرای دستورات با امتیازات بالا، یا صراحتاً "حالت امن" را فعال کنید یا با استفاده از --no-pager یا PAGER=cat صفحه‌بند را کاملاً غیرفعال نمایید.

این گزینه یک آرگومان بولی می‌پذیرد. در صورت تنظیم روی درست (true)، "حالت امن" صفحه‌بند فعال می‌شود. در "حالت امن"، LESSSECURE=1 هنگام فراخوانی صفحه‌بند تنظیم می‌شود، که به صفحه‌بند دستور می‌دهد دستوراتی را که فایل‌های جدید باز می‌کنند یا می‌سازند، یا فرآیندهای فرعی جدید شروع می‌کنند غیرفعال کند. در حال حاضر فقط less(1) شناخته شده است که این متغیر را درک کرده و "حالت امن" را پیاده‌سازی می‌کند.

هنگامی که روی نادرست (false) تنظیم شود، هیچ محدودیتی برای صفحه‌بند اعمال نمی‌شود. تنظیم 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

یک آرگومان بولی می‌گیرد. در صورت درست بودن، systemd و ابزارهای مربوطه از رنگ‌ها در خروجی خود استفاده خواهند کرد، در غیر این صورت خروجی تک‌رنگ (سیاه و سفید) خواهد بود. علاوه بر این، متغیر می‌تواند یکی از مقادیر ویژه زیر را بگیرد: "16"، "256" تا استفاده از رنگ‌ها را به ترتیب به 16 یا 256 رنگ پایه ANSI محدود کند. این می‌تواند برای بازنویسی تصمیم‌گیری خودکار بر اساس $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.
مشخصات لودر بوت (Boot Loader Specification)
2.
مشخصات پارتیشن‌های قابل کشف (Discoverable Partitions Specification)
3.
استاندارد LSB 3.0.0
4.
توصیه می‌شود سایر ابزارها نیز $SUDO_UID را در صورت لزوم تنظیم و بررسی کنند و با آن به عنوان یک رابط مشترک رفتار نمایند.
systemd 257.13