SYSTEMD(1) systemd SYSTEMD(1)

systemd, init - مدیر سیستم و سرویس‌های لینوکس

/usr/lib/systemd/systemd [OPTIONS...]

init [OPTIONS...] {COMMAND}

systemd یک مدیر سیستم و سرویس برای سیستم‌عامل‌های لینوکس است. هنگامی که به عنوان اولین فرآیند در زمان راه‌اندازی سیستم (با شناسه فرآیند PID 1) اجرا می‌شود، به عنوان سیستم init عمل می‌کند که سرویس‌های فضای کاربری (userspace) را بالا آورده و نگهداری می‌نماید. نمونه‌های جداگانه‌ای برای کاربران واردشده اجرا می‌شوند تا سرویس‌های آن‌ها را آغاز کنند.

systemd معمولاً مستقیماً توسط کاربر فراخوانی نمی‌شود، بلکه به عنوان پیوند نمادین /sbin/init نصب شده و در مراحل اولیه راه‌اندازی سیستم آغاز به کار می‌کند. نمونه‌های مدیر کاربر به‌طور خودکار از طریق سرویس user@.service(5) راه‌اندازی می‌شوند.

برای سازگاری با SysV، اگر این فایل اجرایی با نام init فراخوانی شود و اولین فرآیند روی سیستم نباشد (PID آن ۱ نباشد)، telinit را اجرا کرده و تمام آرگومان‌های خط فرمان را بدون تغییر به آن ارسال می‌کند. این بدان معناست که init و telinit هنگامی که از نشست‌های ورود معمولی فراخوانی شوند عمدتاً معادل هستند. برای اطلاعات بیشتر telinit(8) را ببینید.

هنگامی که به عنوان یک نمونه سیستمی اجرا می‌شود، systemd فایل پیکربندی system.conf و فایل‌های موجود در دایرکتوری‌های system.conf.d را تفسیر می‌کند؛ هنگامی که به عنوان نمونه کاربری اجرا می‌شود، فایل پیکربندی user.conf و فایل‌های موجود در دایرکتوری‌های user.conf.d را تفسیر می‌نماید. برای اطلاعات بیشتر systemd-system.conf(5) را ببینید.

systemd شامل پیاده‌سازی‌های بومی برای وظایف گوناگونی است که باید به عنوان بخشی از فرایند راه‌اندازی سیستم اجرا شوند. به عنوان مثال، نام میزبان (hostname) را تنظیم می‌کند یا دستگاه شبکه loopback را پیکربندی می‌نماید. همچنین فایل‌سیستم‌های API گوناگون مانند /sys/، /proc/ و /dev/ را راه‌اندازی و سوار (mount) می‌کند.

systemd همچنین در صورتی که به نظر برسد ساعت سیستم در اوایل راه‌اندازی نادرست تنظیم شده است، آن را بازنشانی می‌کند. بخش «مبدأ ساعت سیستم» در زیر را ببینید.

توجه داشته باشید که برخی از رابط‌های ارائه‌شده توسط systemd (و نه همه آن‌ها) تحت پوشش تعهد سازگاری و پایداری رابط[1] قرار دارند.

واسط برنامه‌نویسی D-Bus مربوط به systemd در org.freedesktop.systemd1(5) و org.freedesktop.LogControl1(5) شرح داده شده است.

سیستم‌هایی که systemd را در یک محیط کانتینر یا initrd فراخوانی می‌کنند باید به ترتیب مشخصات رابط کانتینر[2] یا رابط initrd[3] را پیاده‌سازی نمایند.

systemd یک سیستم وابستگی بین موجودیت‌های گوناگون به نام «واحدها» (units) از ۱۱ نوع مختلف فراهم می‌کند. واحدها اشیاء گوناگونی را که برای راه‌اندازی و نگهداری سیستم مرتبط هستند کپسوله‌سازی می‌نمایند. اکثریت واحدها در فایل‌های پیکربندی واحد پیکربندی می‌شوند، که نحو و مجموعه پایه‌ای از گزینه‌های آن‌ها در systemd.unit(5) شرح داده شده است؛ با این حال برخی به‌طور خودکار از سایر فایل‌های پیکربندی، به‌صورت پویا از وضعیت سیستم یا به‌طور برنامه‌نویسی‌شده در زمان اجرا ایجاد می‌شوند. واحدها ممکن است در چندین وضعیت باشند که در جدول زیر شرح داده شده‌اند. توجه داشته باشید که انواع گوناگون واحد ممکن است چندین زیروضعیت اضافی داشته باشند که به وضعیت‌های عمومی واحد شرح داده شده در اینجا نگاشت می‌شوند.

جدول &1. &وضعیت‌های فعال (ACTIVE) واحد

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

انواع واحدهای زیر در دسترس هستند:

1.واحدهای سرویس (Service units)، که دیمن‌ها و فرآیندهایی را که از آن‌ها تشکیل شده‌اند راه‌اندازی و کنترل می‌کنند. برای جزئیات، ببینید systemd.service(5).
2.واحدهای سوکت (Socket units)، که سوکت‌های شبکه یا IPC محلی را در سیستم کپسوله‌سازی می‌کنند و برای فعال‌سازی مبتنی بر سوکت مفید هستند. برای جزئیات درباره واحدهای سوکت، systemd.socket(5) و برای جزئیات در مورد فعال‌سازی مبتنی بر سوکت و سایر اشکال فعال‌سازی، daemon(7) را ببینید.
3.واحدهای هدف (Target units)، که برای گروه‌بندی واحدها یا ارائه نقاط همگام‌سازی شناخته‌شده در طول راه‌اندازی سیستم مفید هستند؛ ببینید systemd.target(5).
4.واحدهای دستگاه (Device units)، که دستگاه‌های هسته را در systemd در معرض دید قرار می‌دهند و ممکن است برای پیاده‌سازی فعال‌سازی مبتنی بر دستگاه استفاده شوند. برای جزئیات، ببینید systemd.device(5).
5.واحدهای مانت (Mount units)، که نقاط سوار کردن را در سیستم فایل کنترل می‌کنند؛ برای جزئیات ببینید systemd.mount(5).
6.واحدهای خودکار-مانت (Automount units)، که قابلیت‌های خودکار-سوارکردن را برای سوار کردن برحسب تقاضای سیستم‌های فایل و همچنین راه‌اندازی موازی سیستم فراهم می‌کنند. ببینید systemd.automount(5).
7.واحدهای زمان‌سنج (Timer units)، که برای راه‌اندازی فعال‌سازی سایر واحدها بر اساس زمان‌سنج‌ها مفید هستند. می‌توانید جزئیات را در systemd.timer(5) بیابید.
8.واحدهای سواپ (Swap units)، که بسیار شبیه به واحدهای مانت هستند و پارتیشن‌ها یا فایل‌های حافظه مجازی (سواپ) سیستم‌عامل را کپسوله‌سازی می‌کنند. آن‌ها در systemd.swap(5) شرح داده شده‌اند.
9.واحدهای مسیر (Path units)، که ممکن است برای فعال‌سازی سایر سرویس‌ها در هنگام تغییر یا اصلاح اشیاء سیستم فایل استفاده شوند. ببینید systemd.path(5).
10.واحدهای برش (Slice units)، که می‌توانند برای گروه‌بندی واحدهایی که فرآیندهای سیستم را مدیریت می‌کنند (مانند واحدهای service و scope) در یک ساختار سلسله‌مراتبی درختی به منظور مدیریت منابع به کار روند. ببینید systemd.slice(5).
11.واحدهای محدوده (Scope units)، که شبیه به واحدهای سرویس هستند، اما به جای راه‌اندازی فرآیندهای خارجی، فرآیندهایی را که از قبل ایجاد شده‌اند مدیریت می‌کنند. ببینید systemd.scope(5).

واحدها بر اساس فایل‌های پیکربندی خود نام‌گذاری می‌شوند. برخی از واحدها دارای معناشناسی ویژه هستند. فهرست مفصلی از آن‌ها در systemd.special(7) در دسترس است.

systemd انواع مختلفی از وابستگی‌ها را می‌شناسد، از جمله وابستگی‌های نیازمندی مثبت و منفی (یعنی Requires= و Conflicts=) و همچنین وابستگی‌های ترتیبی (After= و Before=). نکته: وابستگی‌های ترتیبی و نیازمندی متعامد (مستقل از یکدیگر) هستند. اگر تنها یک وابستگی نیازمندی بین دو واحد وجود داشته باشد (به عنوان مثال foo.service به bar.service نیاز داشته باشد)، اما هیچ وابستگی ترتیبی وجود نداشته باشد (مثلاً foo.service پس از bar.service اجرا شود) و درخواست شروع هر دو داده شود، آن‌ها به صورت موازی شروع خواهند شد. این یک الگوی رایج است که هر دو وابستگی نیازمندی و ترتیبی بین دو واحد قرار گیرند. همچنین توجه داشته باشید که بیشتر وابستگی‌ها به صورت ضمنی توسط systemd ایجاد و نگهداری می‌شوند. در اکثر موارد، باید نیازی به اعلام دستی وابستگی‌های اضافی نباشد، اگرچه انجام این کار ممکن است.

برنامه‌های کاربردی و واحدها (از طریق وابستگی‌ها) ممکن است تغییر وضعیت واحدها را درخواست کنند. در systemd، این درخواست‌ها به عنوان «کارها» ('jobs') کپسوله‌سازی شده و در صف کارها نگهداری می‌شوند. کارها ممکن است با موفقیت انجام شوند یا شکست بخورند؛ ترتیب اجرای آن‌ها بر اساس وابستگی‌های ترتیبی واحدهایی است که برای آن‌ها زمان‌بندی شده‌اند.

در هنگام بوت، systemd واحد هدف default.target را فعال می‌کند که وظیفه آن فعال‌سازی سرویس‌ها و سایر واحدهای زمان بوت با فراخوانی آن‌ها از طریق وابستگی‌ها است. معمولاً نام این واحد صرفاً یک نام مستعار (پیوند نمادین) برای یکی از موارد graphical.target (برای بوت‌های کامل با رابط کاربری گرافیکی) یا multi-user.target (برای بوت‌های محدود کنسولی به منظور استفاده در محیط‌های تعبیه‌شده یا سرور، یا موارد مشابه؛ زیرمجموعه‌ای از graphical.target) است. با این حال، به صلاح‌دید مدیر سیستم است که آن را به عنوان یک نام مستعار برای هر واحد هدف دیگری پیکربندی کند. برای جزئیات مربوط به این واحدهای هدف systemd.special(7) را ببینید.

در نخستین بوت، systemd واحدها را بر اساس خط‌مشی پیش‌تنظیم (preset) فعال یا غیرفعال خواهد کرد. ببینید systemd.preset(5) و «معناشناسی اولین بوت» در machine-id(5).

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

1.در وضعیت active، activating، deactivating یا failed باشد (یعنی در هر وضعیتی به جز وضعیت "inactive")
2.یک کار در صف برای آن وجود داشته باشد
3.یک وابستگی برای حداقل یک واحد دیگر باشد که در حافظه بارگذاری شده است
4.نوعی منبع هنوز به آن تخصیص داده شده باشد (مثلاً یک واحد سرویس که غیرفعال است اما فرآیندی برای آن هنوز باقی مانده و درخواست خاتمه را نادیده گرفته است)
5.به‌صورت برنامه‌نویسی‌شده از طریق فراخوانی D-Bus در حافظه پین شده باشد

systemd به‌طور خودکار و ضمنی واحدها را از دیسک بارگذاری می‌کند — اگر هنوز بارگذاری نشده باشند — به محض اینکه عملیاتی برای آن‌ها درخواست شود. بنابراین، از بسیاری جهات، این واقعیت که یک واحد بارگذاری شده است یا خیر برای کلاینت‌ها نامرئی است. از systemctl list-units --all برای فهرست کردن جامع تمام واحدهایی که در حال حاضر بارگذاری شده‌اند استفاده کنید. هر واحدی که هیچ‌یک از شرایط بالا در مورد آن صدق نکند، بلافاصله از حافظه تخلیه می‌شود. توجه داشته باشید که وقتی یک واحد از حافظه تخلیه می‌شود، داده‌های حسابداری (accounting) آن نیز پاک می‌گردد. با این حال، این داده‌ها به‌طور کلی از دست نمی‌روند، زیرا هر زمان که یک واحد خاموش می‌شود، یک رکورد لاگ ژورنال تولید می‌شود که منابع مصرف‌شده را اعلام می‌نماید.

فرآیندهایی که systemd اجرا می‌کند در گروه‌های کنترل لینوکس (control groups) مجزا قرار می‌گیرند که بر اساس واحدی که به آن تعلق دارند در سلسله‌مراتب خصوصی systemd نام‌گذاری شده‌اند. (برای اطلاعات بیشتر درباره گروه‌های کنترل یا به اختصار "cgroups"، گروه‌های کنترل نسخه ۲ (Control Groups v2)[4] را ببینید). systemd از این قابلیت برای ردگیری مؤثر فرآیندها استفاده می‌کند. اطلاعات گروه کنترل در هسته نگهداری می‌شود و از طریق سلسله‌مراتب سیستم فایل (در زیر /sys/fs/cgroup/) یا در ابزارهایی مانند systemd-cgls(1) یا ps(1) قابل دسترسی است (دستور ps xawf -eo pid,user,cgroup,args به ویژه برای فهرست کردن تمام فرآیندها و واحدهای systemd که به آن‌ها تعلق دارند بسیار مفید است).

systemd تا حد زیادی با سیستم SysV init سازگار است: اسکریپت‌های SysV init پشتیبانی می‌شوند و صرفاً به عنوان یک قالب فایل پیکربندی جایگزین (هرچند محدود) خوانده می‌شوند. رابط SysV /dev/initctl ارائه شده است و پیاده‌سازی‌های سازگاری از ابزارهای مختلف کلاینت SysV در دسترس هستند. علاوه بر این، عملکردهای تثبیت‌شده یونیکس مانند /etc/fstab یا پایگاه داده utmp پشتیبانی می‌شوند.

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

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

واحدها ممکن است به صورت پویا در زمان راه‌اندازی سیستم و بارگذاری مجدد مدیر سیستم تولید شوند، به عنوان مثال بر اساس سایر فایل‌های پیکربندی یا پارامترهای ارسال‌شده در خط فرمان هسته. برای جزئیات، ببینید systemd.generator(7).

دایرکتوری‌های واحد سیستم

مدیر سیستم systemd پیکربندی واحد را از دایرکتوری‌های گوناگونی می‌خواند. بسته‌هایی که می‌خواهند فایل‌های واحد را نصب کنند باید آن‌ها را در دایرکتوری بازگردانده‌شده توسط pkg-config systemd --variable=systemdsystemunitdir قرار دهند. دایرکتوری‌های دیگری که بررسی می‌شوند عبارتند از /usr/local/lib/systemd/system و /usr/lib/systemd/system. پیکربندی کاربر همیشه اولویت دارد. pkg-config systemd --variable=systemdsystemconfdir مسیر دایرکتوری پیکربندی سیستم را برمی‌گرداند. بسته‌ها باید محتوای این دایرکتوری‌ها را تنها با دستورات enable و disable از ابزار systemctl(1) تغییر دهند. فهرست کامل دایرکتوری‌ها در systemd.unit(5) ارائه شده است.

دایرکتوری‌های واحد کاربر

قوانین مشابهی برای دایرکتوری‌های واحد کاربر اعمال می‌شود. با این حال، در اینجا از مشخصات شاخه پایه XDG (XDG Base Directory specification)[5] برای یافتن واحدها پیروی می‌شود. برنامه‌های کاربردی باید فایل‌های واحد خود را در دایرکتوری بازگردانده‌شده توسط pkg-config systemd --variable=systemduserunitdir قرار دهند. پیکربندی سراسری در دایرکتوری گزارش‌شده توسط pkg-config systemd --variable=systemduserconfdir انجام می‌شود. دستورات enable و disable از ابزار systemctl(1) می‌توانند فعال/غیرفعال‌سازی سراسری (یعنی برای همه کاربران) و خصوصی (برای یک کاربر) واحدها را مدیریت کنند. فهرست کامل دایرکتوری‌ها در systemd.unit(5) ارائه شده است.

دایرکتوری اسکریپت‌های SysV init

مکان دایرکتوری اسکریپت‌های SysV init در بین توزیع‌ها متفاوت است. اگر systemd نتواند یک فایل واحد بومی برای یک سرویس درخواستی پیدا کند، به دنبال یک اسکریپت SysV init با همان نام (با حذف پسوند .service) می‌گردد.

دایرکتوری پیوندهای سطح اجرای SysV (link farm)

مکان دایرکتوری پیوندهای سطح اجرای SysV بین توزیع‌ها متفاوت است. هنگام تعیین اینکه آیا یک سرویس باید فعال شود یا خیر، systemd این پیوندها را در نظر می‌گیرد. توجه داشته باشید که یک واحد سرویس دارای فایل پیکربندی بومی را نمی‌توان با فعال کردن آن در پیوندهای سطح اجرای SysV راه‌اندازی کرد.

این سرویس به سیگنال‌های فرآیند مختلف یونیکس گوش می‌دهد که می‌توانند برای درخواست ناهمگام اقدامات گوناگون استفاده شوند. مدیریت سیگنال در مراحل بسیار اولیه راه‌اندازی، پیش از فراخوانی هرگونه فرآیند دیگر فعال می‌شود. با این حال، یک مدیر کانتینر ناظر یا موارد مشابه که قصد دارند این عملیات را از طریق این سازوکار درخواست کنند، باید توجه داشته باشند که این قابلیت در مراحل ابتدایی مقداردهی اولیه در دسترس نیست. یک پیام اعلان sd_notify() حاوی فیلد X_SYSTEMD_SIGNALS_LEVEL=2 به محض فعال شدن گرداننده‌های سیگنال ارسال می‌شود؛ زیر را ببینید. این پیام می‌تواند برای زمان‌بندی صحیح ارسال این سیگنال‌ها استفاده شود.

SIGTERM

با دریافت این سیگنال، مدیر سیستم systemd وضعیت خود را سریالی کرده، مجدداً خود را اجرا می‌کند و وضعیت ذخیره‌شده را دوباره بازیابی می‌نماید. این عمل عمدتاً معادل دستور systemctl daemon-reexec است.

مدیران کاربر systemd هنگام دریافت این سیگنال واحد exit.target را آغاز می‌کنند. این کار عمدتاً معادل دستور systemctl --user start exit.target --job-mode=replace-irreversibly است.

SIGINT

با دریافت این سیگنال، مدیر سیستم systemd واحد ctrl-alt-del.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl start ctrl-alt-del.target --job-mode=replace-irreversibly است. اگر این سیگنال بیش از ۷ بار در مدت ۲ ثانیه دریافت شود، یک راه‌اندازی مجدد (reboot) فوری صورت می‌پذیرد. توجه داشته باشید که فشردن Ctrl+Alt+Del روی کنسول این سیگنال را ارسال می‌کند. بنابراین اگر یک راه‌اندازی مجدد متوقف شده و گیر کرده باشد، فشردن Ctrl+Alt+Del بیش از ۷ بار در ۲ ثانیه روشی نسبتاً مطمئن برای راه‌اندازی مجدد فوری سیستم است.

مدیران کاربر systemd با این سیگنال همانند SIGTERM رفتار می‌کنند.

SIGWINCH

هنگامی که این سیگنال دریافت می‌شود، مدیر سیستم systemd واحد kbrequest.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl start kbrequest.target است.

این سیگنال توسط مدیران کاربر systemd نادیده گرفته می‌شود.

SIGPWR

هنگامی که این سیگنال دریافت می‌شود، مدیر systemd واحد sigpwr.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl start sigpwr.target است.

SIGUSR1

هنگامی که این سیگنال دریافت می‌شود، مدیر systemd تلاش می‌کند تا مجدداً به گذرگاه D-Bus متصل شود.

SIGUSR2

هنگامی که این سیگنال دریافت می‌شود، مدیر systemd وضعیت کامل خود را در قالب قابل خواندن برای انسان لاگ می‌کند. داده‌های لاگ‌شده مشابه خروجی دستور systemd-analyze dump است.

SIGHUP

پیکربندی کامل دیمن را مجدداً بارگذاری می‌کند. این کار عمدتاً معادل دستور systemctl daemon-reload است.

SIGRTMIN+0

وارد حالت پیش‌فرض می‌شود، واحد default.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl isolate default.target است.

SIGRTMIN+1

وارد حالت نجات (rescue) می‌شود، واحد rescue.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl isolate rescue.target است.

SIGRTMIN+2

وارد حالت اضطراری (emergency) می‌شود، واحد emergency.service را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl isolate emergency.service است.

SIGRTMIN+3

دستگاه را متوقف (halt) می‌کند، واحد halt.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl start halt.target --job-mode=replace-irreversibly است.

SIGRTMIN+4

دستگاه را خاموش (power off) می‌کند، واحد poweroff.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl start poweroff.target --job-mode=replace-irreversibly است.

SIGRTMIN+5

دستگاه را مجدداً راه‌اندازی (reboot) می‌کند، واحد reboot.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl start reboot.target --job-mode=replace-irreversibly است.

SIGRTMIN+6

دستگاه را از طریق kexec مجدداً راه‌اندازی می‌کند، واحد kexec.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl start kexec.target --job-mode=replace-irreversibly است.

SIGRTMIN+7

فضای کاربری را مجدداً راه‌اندازی می‌کند، واحد soft-reboot.target را آغاز می‌کند. این کار عمدتاً معادل دستور systemctl start soft-reboot.target --job-mode=replace-irreversibly است.

افزوده شده در نسخه 254.

SIGRTMIN+13

دستگاه را بلافاصله متوقف (halt) می‌کند.

SIGRTMIN+14

دستگاه را بلافاصله خاموش (power off) می‌کند.

SIGRTMIN+15

دستگاه را بلافاصله مجدداً راه‌اندازی (reboot) می‌کند.

SIGRTMIN+16

دستگاه را بلافاصله با kexec مجدداً راه‌اندازی می‌کند.

SIGRTMIN+17

فضای کاربری را بلافاصله مجدداً راه‌اندازی می‌کند.

افزوده شده در نسخه 254.

SIGRTMIN+20

نمایش پیام‌های وضعیت روی کنسول را فعال می‌کند، همان‌طور که از طریق systemd.show_status=1 در خط فرمان هسته کنترل می‌شود.

ممکن است بخواهید از SetShowStatus() به جای SIGRTMIN+20 استفاده کنید تا از شرایط رقابتی (race conditions) جلوگیری شود. ببینید org.freedesktop.systemd1(5).

SIGRTMIN+21

نمایش پیام‌های وضعیت روی کنسول را غیرفعال می‌کند، همان‌طور که از طریق systemd.show_status=0 در خط فرمان هسته کنترل می‌شود.

ممکن است بخواهید از SetShowStatus() به جای SIGRTMIN+21 استفاده کنید تا از شرایط رقابتی جلوگیری شود. ببینید org.freedesktop.systemd1(5).

SIGRTMIN+22

سطح لاگ مدیر سرویس را روی "debug" تنظیم می‌کند، به روشی معادل systemd.log_level=debug در خط فرمان هسته.

SIGRTMIN+23

سطح لاگ را به مقدار پیکربندی‌شده آن بازمی‌گرداند. مقدار پیکربندی‌شده – به ترتیب اولویت – از مقدار مشخص‌شده با systemd.log-level= در خط فرمان هسته، یا مقدار مشخص‌شده با LogLevel= در فایل پیکربندی، یا مقدار پیش‌فرض داخلی "info" مشتق می‌شود.

افزوده شده در نسخه 239.

SIGRTMIN+24

بلافاصله از مدیر خارج می‌شود (تنها برای نمونه‌های --user در دسترس است).

افزوده شده در نسخه 195.

SIGRTMIN+25

با دریافت این سیگنال مدیر systemd مجدداً خود را اجرا می‌کند. این عمل عمدتاً معادل دستور systemctl daemon-reexec است به جز اینکه به صورت ناهمگام انجام خواهد شد.

مدیر سیستم systemd با این سیگنال همانند SIGTERM رفتار می‌کند.

افزوده شده در نسخه 250.

SIGRTMIN+26

مقصد لاگ (log target) را به مقدار پیکربندی‌شده آن بازمی‌گرداند. مقدار پیکربندی‌شده – به ترتیب اولویت – از مقدار مشخص‌شده با systemd.log-target= در خط فرمان هسته، یا مقدار مشخص‌شده با LogTarget= در فایل پیکربندی، یا مقدار پیش‌فرض داخلی مشتق می‌شود.

افزوده شده در نسخه 239.

SIGRTMIN+27, SIGRTMIN+28

مقصد لاگ را روی "console" با SIGRTMIN+27 (یا روی "kmsg" با SIGRTMIN+28) تنظیم می‌کند، به شیوه‌ای معادل systemd.log_target=console (یا systemd.log_target=kmsg در SIGRTMIN+28) در خط فرمان هسته.

افزوده شده در نسخه 239.

بلوک محیطی برای مدیر سیستم در ابتدا توسط هسته تنظیم می‌شود. (به‌ویژه، انتساب‌های "key=value" در خط فرمان هسته به متغیرهای محیطی برای فرآیند PID 1 تبدیل می‌شوند). برای مدیر کاربر، مدیر سیستم محیط را همان‌طور که در بخش «متغیرهای محیطی در فرآیندهای ایجادشده» در systemd.exec(5) شرح داده شده تنظیم می‌کند. تنظیم DefaultEnvironment= در مدیر سیستم برای همه سرویس‌ها از جمله user@.service اعمال می‌شود. ورودی‌های اضافی ممکن است (مانند هر سرویس دیگری) از طریق تنظیمات Environment= و EnvironmentFile= برای user@.service پیکربندی شوند (ببینید systemd.exec(5)). همچنین متغیرهای محیطی اضافی می‌توانند از طریق تنظیم ManagerEnvironment= در systemd-system.conf(5) و systemd-user.conf(5) تنظیم گردند.

برخی از متغیرهای شناخته‌شده توسط systemd:

$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 باشد). توجه داشته باشید که حداکثر سطح لاگ سراسری بر هر سطح لاگ مشخص‌شده برای مقصد خاص اولویت دارد.

این گزینه می‌تواند با --log-level= بازنویسی شود.

$SYSTEMD_LOG_COLOR

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

این گزینه می‌تواند با --log-color= بازنویسی شود.

$SYSTEMD_LOG_TIME

یک مقدار بولی. اگر true باشد، پیام‌های لاگ کنسول با یک برچسب زمانی (timestamp) پیشوندگذاری خواهند شد.

این گزینه می‌تواند با --log-time= بازنویسی شود.

افزوده شده در نسخه 246.

$SYSTEMD_LOG_LOCATION

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

این گزینه می‌تواند با --log-location= بازنویسی شود.

$SYSTEMD_LOG_TID

یک مقدار بولی. اگر true باشد، پیام‌ها با شناسه عددی رشته جاری (TID) پیشوندگذاری می‌شوند.

افزوده شده در نسخه 247.

$SYSTEMD_LOG_TARGET

مقصد پیام‌های لاگ. یکی از موارد زیر است: console (لاگ در tty متصل‌شده)، console-prefixed (لاگ در tty متصل‌شده اما با پیشوندهایی که سطح لاگ و "facility" را کدگذاری می‌کنند؛ ببینید syslog(3))، kmsg (لاگ در بافر لاگ حلقوی هسته)، journal (لاگ در ژورنال)، journal-or-kmsg (لاگ در ژورنال در صورت موجود بودن، و در غیر این صورت در kmsg)، auto (تعیین خودکار مقصد لاگ مناسب، حالت پیش‌فرض)، null (غیرفعال کردن خروجی لاگ).

این گزینه می‌تواند با --log-target= بازنویسی شود.

$SYSTEMD_LOG_RATELIMIT_KMSG

اینکه آیا محدودیت نرخ (ratelimit) برای kmsg اعمال شود یا خیر. یک مقدار بولی می‌پذیرد. پیش‌فرض "true" است. در صورت غیرفعال بودن، systemd پیام‌های نوشته‌شده در kmsg را محدود نمی‌کند.

افزوده شده در نسخه 254.

$XDG_CONFIG_HOME, $XDG_CONFIG_DIRS, $XDG_DATA_HOME, $XDG_DATA_DIRS

مدیر کاربر systemd از این متغیرها مطابق با مشخصات شاخه پایه XDG (XDG Base Directory specification)[5] برای یافتن پیکربندی خود استفاده می‌کند.

$SYSTEMD_UNIT_PATH, $SYSTEMD_GENERATOR_PATH, $SYSTEMD_ENVIRONMENT_GENERATOR_PATH

مکان‌هایی را که systemd در آن‌ها به دنبال فایل‌های واحد و مولدها (generators) می‌گردد کنترل می‌کند.

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

$SYSTEMD_PAGER, $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

بازنویسی مجموعه نویسه (charset) ارسال‌شده به 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 تلاش می‌کنند تا به‌طور خودکار تشخیص دهند که آیا «حالت امن» باید فعال شود یا خیر و آیا صفحه‌بندی‌کننده از آن پشتیبانی می‌کند یا خیر. اگر شناسه کاربری مؤثر (effective UID) با مالک نشست ورود یکسان نباشد (ببینید geteuid(2) و sd_pid_get_owner_uid(3))، یا هنگام اجرا تحت sudo(8) یا ابزارهای مشابه ($SUDO_UID تنظیم شده باشد [6])، «حالت امن» فعال می‌شود. در این موارد، SYSTEMD_PAGERSECURE=1 تنظیم می‌شود و صفحه‌بندی‌کننده‌هایی که مشخص نیست «حالت امن» را پیاده‌سازی می‌کنند اصلاً استفاده نخواهند شد. توجه داشته باشید که این تشخیص خودکار تنها رایج‌ترین سازوکارها را برای افزایش امتیازات پوشش می‌دهد و برای راحتی در نظر گرفته شده است. توصیه می‌شود به‌صراحت $SYSTEMD_PAGERSECURE را تنظیم کرده یا صفحه‌بندی‌کننده را غیرفعال کنید.

توجه داشته باشید که اگر قرار است متغیرهای $SYSTEMD_PAGER یا $PAGER رعایت شوند (به جز برای غیرفعال کردن صفحه‌بندی‌کننده)، $SYSTEMD_PAGERSECURE نیز باید تنظیم شده باشد.

$SYSTEMD_COLORS

یک آرگومان بولی می‌پذیرد. هنگامی که true باشد، systemd و ابزارهای مربوطه از رنگ‌ها در خروجی خود استفاده می‌کنند، در غیر این صورت خروجی تک‌رنگ (monochrome) خواهد بود. علاوه بر این، این متغیر می‌تواند یکی از مقادیر ویژه زیر را بگیرد: "16"، "256" تا استفاده از رنگ‌ها را به ترتیب به رنگ‌های پایه ۱۶ یا ۲۵۶ رنگ ANSI محدود کند. این می‌تواند برای بازنویسی تصمیم خودکار بر اساس $TERM و آنچه کنسول به آن متصل است، مشخص شود.

$SYSTEMD_URLIFY

مقدار باید بولی باشد. کنترل می‌کند که آیا پیوندهای قابل کلیک باید در خروجی برای شبیه‌سازهای ترمینالی که از این قابلیت پشتیبانی می‌کنند ایجاد شوند یا خیر. این می‌تواند برای بازنویسی تصمیمی که systemd بر اساس $TERM و سایر شرایط می‌گیرد مشخص شود.

$LISTEN_PID, $LISTEN_FDS, $LISTEN_FDNAMES

توسط systemd برای فرآیندهای تحت نظارت در طول فعال‌سازی مبتنی بر سوکت تنظیم می‌شوند. برای اطلاعات بیشتر sd_listen_fds(3) را ببینید.

$NOTIFY_SOCKET

توسط مدیر سرویس برای سرویس‌هایش به منظور اعلان وضعیت و آمادگی تنظیم می‌شود. همچنین توسط مدیر سرویس برای اطلاع‌رسانی به مدیران کانتینر ناظر یا مدیران سرویس در سطوح بالاتر درباره پیشرفت خود مصرف می‌گردد. برای اطلاعات بیشتر sd_notify(3) و بخش مربوطه در زیر را ببینید.

برای متغیرهای محیطی بیشتر که توسط systemd و مؤلفه‌های مختلف آن شناخته می‌شوند، به متغیرهای محیطی شناخته‌شده[7] مراجعه کنید.

هنگامی که به عنوان نمونه سیستم اجرا می‌شود، systemd تعدادی از گزینه‌های فهرست‌شده در زیر را تجزیه می‌کند. آن‌ها می‌توانند به عنوان آرگومان‌های خط فرمان هسته مشخص شوند که بسته به محیطی که systemd در آن اجرا می‌شود از منابع متعددی تجزیه می‌گردند. اگر در داخل کانتینر لینوکس اجرا شود، این گزینه‌ها از آرگومان‌های خط فرمان ارسال‌شده به خود systemd در کنار هر یک از گزینه‌های خط فرمان فهرست‌شده در بخش گزینه‌ها در بالا تجزیه می‌شوند. اگر در خارج از کانتینرهای لینوکس اجرا شود، این آرگومان‌ها به جای آن از /proc/cmdline و از متغیر EFI با نام "SystemdOptions" (روی سیستم‌های EFI) تجزیه می‌شوند. گزینه‌های حاصل از /proc/cmdline اولویت بالاتری دارند.

توجه: استفاده از "SystemdOptions" منسوخ شده است.

متغیرهای زیر شناخته می‌شوند:

systemd.unit=, rd.systemd.unit=

واحدی را که باید در هنگام بوت فعال شود بازنویسی می‌کند. پیش‌فرض default.target است. این ممکن است برای بوت موقت به یک واحد بوت دیگر، برای مثال rescue.target یا emergency.service استفاده شود. برای جزئیات درباره این واحدها systemd.special(7) را ببینید. گزینه‌ای که با پیشوند "rd." همراه است تنها در initrd رعایت می‌شود، در حالی که گزینه بدون پیشوند تنها در سیستم اصلی معتبر است.

systemd.dump_core

یک آرگومان بولی می‌پذیرد یا در صورت مشخص شدن بدون آرگومان گزینه را فعال می‌کند. در صورت فعال بودن، مدیر systemd (فرآیند PID 1) در هنگام کرش یک تخلیه حافظه (core dump) ایجاد می‌کند. در غیر این صورت هیچ تخلیه حافظه‌ای ایجاد نمی‌شود. پیش‌فرض فعال است.

افزوده شده در نسخه 233.

systemd.crash_chvt

یک عدد صحیح مثبت یا یک آرگومان بولی می‌پذیرد. همچنین می‌تواند بدون آرگومان مشخص شود که اثری مشابه مقدار بولی مثبت دارد. اگر یک عدد صحیح مثبت (در محدوده ۱–۶۳) مشخص شود، مدیر سیستم (PID 1) ترمینال مجازی مشخص‌شده را در هنگام کرش فعال می‌کند. پیش‌فرض غیرفعال است، به این معنی که هیچ تلاشی برای چنین تغییری انجام نمی‌شود. در صورت تنظیم روی فعال، به جای آن از ترمینال مجازی که پیام‌های هسته در آن نوشته می‌شوند استفاده می‌گردد.

افزوده شده در نسخه 233.

systemd.crash_shell

یک آرگومان بولی می‌پذیرد یا در صورت مشخص شدن بدون آرگومان گزینه را فعال می‌کند. در صورت فعال بودن، مدیر سیستم (PID 1) در هنگام کرش یک پوسته (shell) را راه‌اندازی می‌نماید. در غیر این صورت هیچ پوسته‌ای ایجاد نمی‌شود. به دلایل امنیتی به‌طور پیش‌فرض غیرفعال است، زیرا پوسته با احراز هویت گذرواژه محافظت نمی‌شود.

افزوده شده در نسخه 233.

systemd.crash_action=

یکی از مقادیر "freeze"، "reboot" یا "poweroff" را می‌پذیرد. پیش‌فرض "freeze" است. در صورت تنظیم روی "freeze"، سیستم هنگام کرش مدیر سیستم (PID 1) برای مدت نامحدود متوقف می‌ماند. در صورت تنظیم روی "reboot"، مدیر سیستم (PID 1) پس از یک تأخیر ۱۰ ثانیه‌ای دستگاه را به‌طور خودکار هنگام کرش مجدداً راه‌اندازی می‌کند. در صورت تنظیم روی "poweroff"، مدیر سیستم (PID 1) هنگام کرش دستگاه را بلافاصله خاموش می‌نماید. اگر با systemd.crash_shell ترکیب شود، اقدام کرش پیکربندی‌شده پس از خروج از پوسته اجرا می‌شود.

افزوده شده در نسخه 256.

systemd.confirm_spawn

یک آرگومان بولی یا یک مسیر به کنسول مجازی که پیام‌های تأیید باید در آن ارسال شوند می‌پذیرد. همچنین می‌تواند بدون آرگومان مشخص شود که اثری مشابه مقدار بولی مثبت دارد. در صورت فعال بودن، مدیر سیستم (PID 1) هنگام ایجاد فرآیندها با استفاده از /dev/console درخواست تأیید می‌کند. اگر یک مسیر یا نام کنسول (مانند "ttyS0") ارائه شود، به جای آن از کنسول مجازی اشاره‌شده توسط این مسیر یا توصیف‌شده توسط نام داده‌شده استفاده خواهد شد. پیش‌فرض غیرفعال است.

افزوده شده در نسخه 233.

systemd.service_watchdogs=

یک آرگومان بولی می‌پذیرد. در صورت غیرفعال بودن، تمام زمان‌سنج‌های نگهبان زمان اجرای سرویس (WatchdogSec=) و اقدامات اضطراری (مانند OnFailure= یا StartLimitAction=) توسط مدیر سیستم (PID 1) نادیده گرفته می‌شوند؛ ببینید systemd.service(5). پیش‌فرض فعال است، یعنی نگهبان‌ها و اقدامات مربوط به شکست به‌طور معمول پردازش می‌شوند. نگهبان سخت‌افزاری تحت تأثیر این گزینه قرار نمی‌گیرد.

افزوده شده در نسخه 237.

systemd.show_status

یک آرگومان بولی یا مقادیر ثابت error و auto را می‌پذیرد. همچنین می‌تواند بدون آرگومان مشخص شود که اثری مشابه با یک مقدار بولی مثبت دارد. در صورت فعال بودن، مدیر systemd (PID 1) به‌روزرسانی‌های خلاصه وضعیت سرویس را در طول بوت روی کنسول نمایش می‌دهد. با مقدار error، تنها پیام‌های مربوط به خرابی‌ها نمایش داده می‌شوند و بوت در غیر این صورت بی‌صدا است. مقدار auto مانند false رفتار می‌کند تا زمانی که تأخیر قابل توجهی در بوت رخ دهد. پیش‌فرض فعال است، مگر اینکه quiet به عنوان گزینه خط فرمان هسته ارسال شده باشد، که در این صورت پیش‌فرض روی error تنظیم می‌شود. در صورت مشخص شدن، گزینه فایل پیکربندی مدیر سیستم با نام ShowStatus= را بازنویسی می‌کند؛ ببینید systemd-system.conf(5).

افزوده شده در نسخه 233.

systemd.status_unit_format=

مقادیر name، description یا combined را به عنوان مقدار می‌پذیرد. اگر name باشد، مدیر سیستم از نام‌های واحد در پیام‌های وضعیت استفاده می‌کند. اگر combined باشد، مدیر سیستم از نام‌ها و توضیحات واحد در پیام‌های وضعیت استفاده می‌نماید. در صورت مشخص شدن، گزینه فایل پیکربندی مدیر سیستم با نام StatusUnitFormat= را بازنویسی می‌کند؛ ببینید systemd-system.conf(5).

افزوده شده در نسخه 243.

systemd.log_color, systemd.log_level=, systemd.log_location, systemd.log_target=, systemd.log_time, systemd.log_tid, systemd.log_ratelimit_kmsg

خروجی لاگ را با همان تأثیری که متغیرهای محیطی $SYSTEMD_LOG_COLOR، $SYSTEMD_LOG_LEVEL، $SYSTEMD_LOG_LOCATION، $SYSTEMD_LOG_TARGET، $SYSTEMD_LOG_TIME، $SYSTEMD_LOG_TID و $SYSTEMD_LOG_RATELIMIT_KMSG توضیح داده شده در بالا دارند، کنترل می‌کنند. گزینه‌های systemd.log_color، systemd.log_location، systemd.log_time، systemd.log_tid و systemd.log_ratelimit_kmsg می‌توانند بدون آرگومان مشخص شوند که اثری مشابه با مقدار بولی مثبت دارد.

systemd.default_standard_output=, systemd.default_standard_error=

خروجی استاندارد و خروجی خطای پیش‌فرض را برای سرویس‌ها و سوکت‌ها کنترل می‌کند. یعنی پیش‌فرض را برای StandardOutput= و StandardError= کنترل می‌نماید (برای جزئیات systemd.exec(5) را ببینید). یکی از مقادیر inherit، null، tty، journal، journal+console، kmsg، kmsg+console را می‌پذیرد. اگر آرگومان حذف شود، systemd.default-standard-output= به‌طور پیش‌فرض روی journal و systemd.default-standard-error= روی inherit تنظیم می‌شود.

systemd.setenv=

یک آرگومان رشته‌ای به شکل VARIABLE=VALUE می‌پذیرد. ممکن است برای تنظیم متغیرهای محیطی پیش‌فرض جهت افزودن به فرآیندهای فرزند ایجادشده استفاده شود. ممکن است بیش از یک بار برای تنظیم چندین متغیر استفاده شود.

systemd.machine_id=

یک مقدار هگزادسیمال ۳۲ نویسه‌ای را برای تنظیم machine-id می‌پذیرد. بیشتر برای بوت شبکه که در آن شناسه یکسان برای هر بار بوت مد نظر است در نظر گرفته شده است.

افزوده شده در نسخه 229.

systemd.set_credential=, systemd.set_credential_binary=

یک اعتبارنامه سیستم را تنظیم می‌کند که سپس می‌تواند با استفاده از تنظیم ImportCredential= یا LoadCredential= به سرویس‌های سیستم ارسال شود؛ برای جزئیات systemd.exec(5) را ببینید. یک جفت از نام و مقدار اعتبارنامه را که با دو نقطه از هم جدا شده‌اند می‌پذیرد. پارامتر systemd.set_credential= مقدار اعتبارنامه را در قالب متن ساده انتظار دارد، در حالی که پارامتر systemd.set_credential_binary= داده‌های دودویی کدگذاری‌شده در Base64 را می‌پذیرد. توجه داشته باشید که خط فرمان هسته معمولاً توسط برنامه‌های غیرممتاز در /proc/cmdline قابل دسترسی است. بنابراین، این سازوکار برای انتقال داده‌های حساس مناسب نیست. از آن تنها برای داده‌هایی که حساس نیستند (مانند کلیدها/گواهی‌های عمومی به جای کلیدهای خصوصی) یا در محیط‌های آزمایش/اشکال‌زدایی استفاده کنید.

برای اطلاعات بیشتر مستندات اعتبارنامه‌های سیستم و سرویس[8] را ببینید.

افزوده شده در نسخه 251.

systemd.import_credentials=

یک آرگومان بولی می‌پذیرد. در صورت false بودن، وارد کردن اعتبارنامه‌ها را از خط فرمان هسته، جدول رشته‌های سازنده OEM مربوط به DMI/SMBIOS، زیرسیستم qemu_fw_cfg یا استاب هسته EFI غیرفعال می‌کند.

افزوده شده در نسخه 251.

quiet

خروجی وضعیت را در هنگام بوت خاموش می‌کند، همانند اثری که systemd.show_status=no دارد. توجه داشته باشید که این گزینه توسط خود هسته نیز خوانده می‌شود و خروجی لاگ هسته را غیرفعال می‌نماید. بنابراین ارسال این گزینه خروجی معمول از مدیر سیستم و هسته را خاموش می‌کند.

افزوده شده در نسخه 186.

debug

خروجی اشکال‌زدایی را روشن می‌کند. این معادل systemd.log_level=debug است. توجه داشته باشید که این گزینه توسط خود هسته نیز خوانده می‌شود و خروجی اشکال‌زدایی هسته را فعال می‌نماید. بنابراین ارسال این گزینه خروجی اشکال‌زدایی را از مدیر سیستم و هسته روشن می‌کند.

افزوده شده در نسخه 205.

emergency, rd.emergency, -b

بوت در حالت اضطراری (emergency mode). این به ترتیب معادل systemd.unit=emergency.target یا rd.systemd.unit=emergency.target است، و به دلایل سازگاری و تایپ آسان‌تر ارائه شده است.

افزوده شده در نسخه 186.

rescue, rd.rescue, single, s, S, 1

بوت در حالت نجات (rescue mode). این به ترتیب معادل systemd.unit=rescue.target یا rd.systemd.unit=rescue.target است، و به دلایل سازگاری و تایپ آسان‌تر ارائه شده است.

افزوده شده در نسخه 186.

2, 3, 4, 5

بوت در سطح اجرای سنتی مشخص‌شده SysV. گزینه‌های 2، 3 و 4 معادل systemd.unit=multi-user.target؛ و گزینه 5 معادل systemd.unit=graphical.target هستند، و به دلایل سازگاری و تایپ آسان‌تر ارائه شده‌اند.

افزوده شده در نسخه 186.

locale.LANG=, locale.LANGUAGE=, locale.LC_CTYPE=, locale.LC_NUMERIC=, locale.LC_TIME=, locale.LC_COLLATE=, locale.LC_MONETARY=, locale.LC_MESSAGES=, locale.LC_PAPER=, locale.LC_NAME=, locale.LC_ADDRESS=, locale.LC_TELEPHONE=, locale.LC_MEASUREMENT=, locale.LC_IDENTIFICATION=

تنظیم محلی‌سازی (locale) سیستم برای استفاده. این تنظیمات پیکربندی‌های موجود در /etc/locale.conf را بازنویسی می‌کند. برای اطلاعات بیشتر locale.conf(5) و locale(7) را ببینید.

افزوده شده در نسخه 186.

برای سایر پارامترهای خط فرمان هسته که توسط مؤلفه‌های سیستم‌عامل پایه درک می‌شوند، لطفاً به kernel-command-line(7) مراجعه کنید.

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

•هنگامی که مدیر سرویس برای اولین بار مقداردهی اولیه می‌شود، اعتبارنامه‌های سیستم را از رشته‌های سازنده SMBIOS نوع 11 با نام‌های io.systemd.credential:name=value و io.systemd.credential.binary:name=value می‌خواند.
•در همان زمان اعتبارنامه‌ها را از "fw_cfg" مربوط به QEMU وارد می‌کند. (توجه داشته باشید که سازوکار SMBIOS معمولاً ترجیح داده می‌شود، زیرا سریع‌تر و عمومی است).
•اعتبارنامه‌ها ممکن است از طریق خط فرمان هسته با استفاده از پارامتر systemd.set-credential= ارسال شوند؛ بالا را ببینید.
•اعتبارنامه‌ها ممکن است از محیط UEFI از طریق systemd-stub(7) ارسال شوند.
•هنگامی که مدیر سرویس در طول انتقال initrd → host فراخوانی می‌شود، تمام فایل‌های موجود در /run/credentials/@initrd/ را به عنوان اعتبارنامه‌های سیستم وارد می‌کند.

دستور systemd-creds(1) را به صورت زیر فراخوانی کنید تا فهرست اعتبارنامه‌های ارسالی به سیستم را مشاهده نمایید:

# systemd-creds --system list

برای اطلاعات بیشتر مستندات اعتبارنامه‌های سیستم و سرویس[8] را ببینید.

مدیر سرویس هنگامی که به عنوان PID 1 اجرا می‌شود، اعتبارنامه‌های سیستم زیر را مصرف می‌کند:

vmm.notify_socket

شامل یک نشانی AF_VSOCK یا AF_UNIX است که در آن هنگام تکمیل راه‌اندازی مدیر سرویس، یک پیام اعلان READY=1 ارسال می‌شود. برای اطلاعات بیشتر sd_notify(3) و بخش بعدی را ببینید. توجه داشته باشید در صورتی که هایپروایزر از SOCK_DGRAM روی AF_VSOCK پشتیبانی نکند، به جای آن SOCK_SEQPACKET امتحان خواهد شد. بار داده (payload) اعتبارنامه برای AF_VSOCK باید یک رشته به شکل "vsock:CID:PORT" باشد. مقادیر "vsock-stream"، "vsock-dgram" و "vsock-seqpacket" می‌توانند به جای "vsock" استفاده شوند تا استفاده از نوع سوکت متناظر را تحمیل کنند.

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

افزوده شده در نسخه 254.

system.machine_id

یک شناسه هگزادسیمال ۱۲۸ بیتی را برای مقداردهی اولیه /etc/machine-id در صورتی که فایل هنوز تنظیم نشده باشد می‌پذیرد. برای جزئیات machine-id(5) را ببینید.

افزوده شده در نسخه 254.

برای فهرستی از اعتبارنامه‌های سیستم که مؤلفه‌های گوناگون دیگر systemd مصرف می‌کنند، به systemd.system-credentials(7) مراجعه کنید.

مدیر سرویس یک پروتکل اعلان آمادگی را هم بین مدیر و سرویس‌های آن (یعنی در جهت پایین پشته) و هم بین مدیر و یک ناظر احتمالی در سطوح بالاتر پشته (که دومی می‌تواند یک مدیر ماشین یا کانتینر، یا در مورد مدیر سرویس به ازای هر کاربر نمونه مدیر سرویس سیستم باشد) پیاده‌سازی می‌کند. پروتکل پایه (و واسط برنامه‌نویسی پیشنهادی برای آن) در sd_notify(3) شرح داده شده است.

سوکت اعلانی که مدیر سرویس (از جمله PID 1) برای گزارش آمادگی به ناظر خود استفاده می‌کند از طریق متغیر محیطی معمول $NOTIFY_SOCKET تنظیم می‌شود (بالا را ببینید). از آنجا که این متغیر مستقیماً تنها برای مدیران کانتینر و برای نمونه به ازای هر کاربر از مدیر سرویس قابل تنظیم است، یک سازوکار اضافی برای پیکربندی این مورد به ویژه برای استفاده در محیط‌های ماشین مجازی در دسترس است: اعتبارنامه سیستم vmm.notify_socket (بالا را ببینید) ممکن است روی یک سوکت مناسب (معمولاً یک سوکت AF_VSOCK) از طریق رشته‌های سازنده SMBIOS نوع 11 تنظیم شود. برای جزئیات بالا را ببینید.

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

•یک پیام X_SYSTEMD_HOSTNAME=... به محض اینکه نام اولیه میزبان برای سیستم تعیین شود ارسال خواهد شد. توجه داشته باشید که در طول اجرای بعدی ممکن است نام میزبان مجدداً به صورت برنامه‌نویسی‌شده تغییر کند، و (در حال حاضر) در آن حالت اعلان‌های بیشتری ارسال نمی‌شود.

افزوده شده در نسخه 256.

•یک پیام X_SYSTEMD_MACHINE_ID=... به محض تعیین شناسه ماشین سیستم ارسال خواهد شد. برای جزئیات machine-id(5) را ببینید.

افزوده شده در نسخه 256.

•یک پیام X_SYSTEMD_SIGNALS_LEVEL=... به محض اینکه مدیر سرویس گرداننده‌های سیگنال‌های گوناگون فرآیند یونیکس را که در بالا شرح داده شد نصب کند ارسال خواهد شد. مقدار این فیلد یک عدد صحیح بدون علامت در قالب رشته ده‌دهی است و سطح ویژگی سیگنال‌های فرآیند یونیکس پشتیبانی‌شده توسط مدیر سرویس را نشان می‌دهد. در حال حاضر تنها یک سطح ویژگی منفرد تعریف شده است:
•مقدار X_SYSTEMD_SIGNALS_LEVEL=2 سیگنال‌های فرآیند گوناگون یونیکس مستندشده در بالا را پوشش می‌دهد – که زیرمجموعه گسترده‌تری از سیگنال‌های پشتیبانی‌شده توسط سیستم تاریخی SysV init هستند.

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

افزوده شده در نسخه 256.

•پیام‌های X_SYSTEMD_UNIT_ACTIVE=... و X_SYSTEMD_UNIT_INACTIVE=... برای هر واحد هدف با فعال شدن یا متوقف شدن فعالیت آن ارسال خواهند شد. این برای ردگیری پیشرفت و قابلیت‌های راه‌اندازی مفید است. به عنوان مثال، به محض اینکه گزارش شود واحد ssh-access.target شروع به کار کرده است، دسترسی SSH معمولاً در دسترس خواهد بود؛ برای جزئیات systemd.special(7) را ببینید.

افزوده شده در نسخه 256.

•یک پیام X_SYSTEMD_SHUTDOWN=... مدت کوتاهی قبل از خاموش شدن سیستم ارسال خواهد شد. مقدار آن یکی از رشته‌های "reboot"، "halt"، "poweroff" یا "kexec" است و نشان می‌دهد که چه نوع خاموش‌شدنی در حال اجرا است.

افزوده شده در نسخه 256.

•یک پیام X_SYSTEMD_REBOOT_PARAMETER=... نیز مدت کوتاهی قبل از خاموش شدن سیستم ارسال خواهد شد. مقدار آن آرگومان راه‌اندازی مجدد است که با systemctl --reboot-argument=... پیکربندی شده است.

افزوده شده در نسخه 256.

توجه داشته باشید که این فیلدهای افزونه علاوه بر اعلان‌های معمول "READY=1" و "RELOADING=1" ارسال می‌شوند.

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

این گزینه‌ها برای آزمایش و درون‌نگری استفاده می‌شوند، و systemd ممکن است در هر زمانی با آن‌ها فراخوانی شود:

--dump-configuration-items

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

--dump-bus-properties

تخلیه ویژگی‌های ارائه‌شده روی گذرگاه. این گزینه یک فهرست مختصر اما کامل از ویژگی‌های ارائه‌شده روی D-Bus را خروجی می‌دهد.

افزوده شده در نسخه 239.

--test

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

--system, --user

هنگامی که همراه با --test استفاده شود، انتخاب می‌کند که تراکنش اولیه برای نمونه سیستم محاسبه شود یا برای نمونه به ازای هر کاربر. این گزینه‌ها در صورت فراخوانی بدون --test هیچ تاثیری ندارند، زیرا در طول فراخوانی‌های معمولی (یعنی غیر از --test) مدیر سرویس با بررسی اینکه آیا PID اجرایی آن ۱ است یا خیر، به‌طور خودکار تشخیص می‌دهد که باید در حالت سیستم کار کند یا کاربر. توجه داشته باشید که راه‌اندازی و نگهداری سیستمی که مدیر سرویس در حالت --system اما با PID غیر از ۱ اجرا شود پشتیبانی نمی‌شود.

-h, --help

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

--version

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

این گزینه‌ها مستقیماً با گزینه‌های فهرست‌شده در بالا در بخش «خط فرمان هسته» مطابقت دارند. هر دو فرم ممکن است به‌طور معادل برای مدیر سیستم استفاده شوند، اما توصیه می‌شود در این زمینه از فرم‌های فهرست‌شده در بالا استفاده شود، زیرا آن‌ها به‌درستی دارای فضای نام (namespaced) هستند. هنگامی که یک گزینه هم در خط فرمان هسته و هم به عنوان یک آرگومان خط فرمان معمولی مشخص شود، دومی اولویت بالاتری دارد.

هنگامی که systemd به عنوان مدیر کاربر استفاده می‌شود، خط فرمان هسته نادیده گرفته شده و تنها گزینه‌های شرح‌داده‌شده در زیر درک می‌شوند. با این وجود، systemd معمولاً در این حالت از طریق سرویس user@.service(5) آغاز می‌شود که بین همه کاربران مشترک است. ممکن است استفاده از فایل‌های پیکربندی برای اصلاح تنظیمات (ببینید systemd-user.conf(5))، یا متغیرهای محیطی راحت‌تر باشد. برای بررسی نحوه تنظیم بلوک محیط، بخش «متغیرهای محیطی» در بالا را ببینید.

--unit=

واحد پیش‌فرض را برای فعال‌سازی در زمان راه‌اندازی تنظیم می‌کند. در صورت عدم تعیین، پیش‌فرض روی default.target قرار می‌گیرد. گزینه systemd.unit= در بالا را ببینید.

--dump-core

تخلیه حافظه (core dump) را هنگام کرش فعال می‌کند. این سوییچ در هنگام اجرا به عنوان نمونه کاربر هیچ تأثیری ندارد. مشابه با systemd.dump_core= در بالا است.

--crash-vt=VT

هنگام کرش به یک کنسول مجازی (VT) مشخص تغییر وضعیت می‌دهد. این سوییچ هنگام اجرا به عنوان نمونه کاربر هیچ تأثیری ندارد. مشابه با systemd.crash_chvt= در بالا است (اما به املای متفاوت آن توجه کنید!).

افزوده شده در نسخه 227.

--crash-shell

در هنگام کرش یک پوسته را اجرا می‌کند. این سوییچ هنگام اجرا به عنوان نمونه کاربر هیچ تأثیری ندارد. گزینه systemd.crash_shell= در بالا را ببینید.

--crash-action=

مشخص می‌کند که هنگام کرش مدیر سیستم (PID 1) چه اقدامی انجام شود. این سوییچ هنگامی که systemd به عنوان نمونه کاربر اجرا می‌شود هیچ تأثیری ندارد. گزینه systemd.crash_action= در بالا را ببینید.

افزوده شده در نسخه 256.

--confirm-spawn

هنگام ایجاد فرآیندها درخواست تأیید می‌کند. این سوییچ هنگام اجرا به عنوان نمونه کاربر هیچ تأثیری ندارد. گزینه systemd.confirm_spawn در بالا را ببینید.

--show-status

اطلاعات خلاصه وضعیت واحد را در طول راه‌اندازی و خاموش شدن روی کنسول نمایش می‌دهد. گزینه systemd.show_status در بالا را ببینید.

افزوده شده در نسخه 244.

--log-color

پیام‌های لاگ مهم را برجسته می‌کند. گزینه systemd.log_color در بالا را ببینید.

افزوده شده در نسخه 244.

--log-level=

سطح لاگ را تنظیم می‌کند. گزینه systemd.log_level در بالا را ببینید.

--log-location

مکان کد را در پیام‌های لاگ لحاظ می‌کند. گزینه systemd.log_location در بالا را ببینید.

افزوده شده در نسخه 244.

--log-target=

مقصد لاگ را تنظیم می‌کند. گزینه systemd.log_target در بالا را ببینید.

--log-time=

پیام‌های کنسول را با برچسب زمانی پیشوندگذاری می‌کند. گزینه systemd.log_time در بالا را ببینید.

افزوده شده در نسخه 246.

--machine-id=

شناسه یکتای machine-id تنظیم‌شده روی هارد دیسک را بازنویسی می‌کند. گزینه systemd.machine_id= در بالا را ببینید.

افزوده شده در نسخه 229.

--service-watchdogs

تمام مهلت‌های زمانی زمان‌سنج نگهبان سرویس و اقدامات اضطراری را به‌طور سراسری فعال/غیرفعال می‌کند. گزینه systemd.service_watchdogs در بالا را ببینید.

افزوده شده در نسخه 237.

--default-standard-output=, --default-standard-error=

خروجی پیش‌فرض یا خروجی خطای پیش‌فرض را به ترتیب برای همه سرویس‌ها و سوکت‌ها تنظیم می‌کند. گزینه‌های systemd.default_standard_output= و systemd.default_standard_error= در بالا را ببینید.

هنگامی که systemd شروع به کار کرده یا مجدداً راه‌اندازی می‌شود، ممکن است ساعت سیستم را روی «مبدأ» (epoch) تنظیم کند. این سازوکار برای اطمینان از این است که ساعت سیستم تا حدودی به‌طور منطقی مقداردهی اولیه شده و در طول راه‌اندازی‌های مجدد تقریباً یکنواخت (monotonic) باقی بماند، در صورتی که ساعت بلادرنگ (RTC) محلی مجهز به باتری در دسترس نباشد یا به‌درستی کار نکند.

مبدأ کمترین تاریخی است که فرض می‌شود زمان ساعت سیستم بالاتر از آن به‌درستی تنظیم شده است. هنگام مقداردهی اولیه، اگر ساعت محلی روی مقدار کمتری تنظیم شده باشد، به مبدأ جلو برده می‌شود. به عنوان یک حالت خاص، اگر ساعت محلی به اندازه کافی در آینده باشد (به‌طور پیش‌فرض ۱۵ سال، اما این مقدار را می‌توان در زمان ساخت پیکربندی کرد)، ساعت سخت‌افزاری خراب فرض می‌شود و ساعت سیستم به مبدأ به عقب بازگردانده می‌شود.

مبدأ روی بالاترین مورد از میان این موارد تنظیم می‌شود: زمان ساخت systemd، زمان تغییر ("mtime") فایل /usr/lib/clock-epoch و زمان تغییر فایل /var/lib/systemd/timesync/clock.

/run/systemd/notify

سوکت اعلان وضعیت دیمن. این یک سوکت دیتاگرام AF_UNIX است و برای پیاده‌سازی منطق اعلان دیمن همان‌طور که توسط sd_notify(3) پیاده‌سازی شده استفاده می‌شود.

/run/systemd/private

به عنوان کانال ارتباطی داخلی بین systemctl(1) و فرآیند systemd استفاده می‌شود. این یک سوکت جریانی (stream) AF_UNIX است. این رابط خصوصی systemd است و نباید در پروژه‌های خارجی استفاده شود.

/dev/initctl

پشتیبانی سازگاری محدود برای رابط کلاینت SysV، همان‌طور که توسط واحد systemd-initctl.service پیاده‌سازی شده است. این یک لوله نام‌گذاری‌شده (named pipe) در سیستم فایل است. این رابط منسوخ شده است و نباید در برنامه‌های جدید استفاده شود.

/usr/lib/clock-epoch

زمان تغییر ("mtime") این فایل برای مبدأ زمانی (epoch) استفاده می‌شود؛ بخش قبلی را ببینید.

افزوده شده در نسخه 247.

/var/lib/systemd/timesync/clock

زمان تغییر ("mtime") این فایل توسط systemd-timesyncd.service(8) به‌روزرسانی می‌شود. در صورت وجود، زمان تغییر این فایل برای مبدأ استفاده می‌شود؛ بخش قبلی را ببینید.

افزوده شده در نسخه 257.

systemd 252

آرگومان‌های خط فرمان هسته systemd.unified_cgroup_hierarchy و systemd.legacy_systemd_cgroup_controller منسوخ شدند. لطفاً به سلسله‌مراتب یکپارچه cgroup سوئیچ کنید.

افزوده شده در نسخه 252.

صفحه اصلی systemd[9]، systemd-system.conf(5)، locale.conf(5)، systemctl(1)، journalctl(1)، systemd-notify(1)، daemon(7)، sd-daemon(3)، org.freedesktop.systemd1(5)، systemd.unit(5)، systemd.special(7)، pkg-config(1)، kernel-command-line(7), bootup(7), systemd.directives(7), org.freedesktop.systemd1(5)

برای اطلاعات بیشتر در مورد مفاهیم و ایده‌های پشت systemd، لطفاً به سند طراحی اصلی[10] مراجعه کنید.

1.
تعهد سازگاری و پایداری رابط (Interface Portability and Stability Promise)
2.
رابط کانتینر (Container Interface)
3.
رابط initrd (initrd Interface)
4.
گروه‌های کنترل نسخه ۲ (Control Groups v2)
5.
مشخصات شاخه پایه XDG (XDG Base Directory specification)
6.
توصیه می‌شود که سایر ابزارها $SUDO_UID را در صورت لزوم تنظیم و بررسی کنند، و با آن به عنوان یک رابط مشترک رفتار نمایند.
7.
متغیرهای محیطی شناخته‌شده (Known Environment Variables)
8.
اعتبارنامه‌های سیستم و سرویس (System and Service Credentials)
9.
صفحه اصلی systemd
10.
سند طراحی اصلی (Original Design Document)
systemd 257.13