systemd-system.conf, system.conf.d, systemd-user.conf, user.conf.d
- فایلهای
پیکربندی
مدیر سرویس
سیستم و
نشست
/etc/systemd/system.conf, /run/systemd/system.conf,
/usr/lib/systemd/system.conf, /etc/systemd/system.conf.d/*.conf,
/run/systemd/system.conf.d/*.conf, /usr/lib/systemd/system.conf.d/*.conf
~/.config/systemd/user.conf, /etc/systemd/user.conf,
/run/systemd/user.conf, /usr/lib/systemd/user.conf,
/etc/systemd/user.conf.d/*.conf, /run/systemd/user.conf.d/*.conf,
/usr/lib/systemd/user.conf.d/*.conf
هنگامی که
به عنوان یک
نمونه
سیستمی
اجرا
میشود، systemd
فایل
پیکربندی system.conf
و فایلهای
موجود در
دایرکتوریهای
system.conf.d را تفسیر
میکند؛
هنگامی که
به عنوان یک
نمونه
کاربری
اجرا
میشود،
فایل
پیکربندی user.conf
(به ترتیب
اولویت، در
دایرکتوری
خانگی
کاربر و زیر
/etc/systemd/, /run/systemd/, و /usr/lib/systemd/) و
فایلهای
موجود در
دایرکتوریهای
user.conf.d را تفسیر
میکند. این
فایلهای
پیکربندی
شامل
تنظیماتی
برای کنترل
عملیات
پایهای
مدیر
هستند.
برای شرح
کلی نحو،
systemd.syntax(7) را
ببینید.
پیکربندی
پیشفرض در
زمان
کامپایل
تعیین
میشود،
بنابراین
پیکربندی
تنها زمانی
مورد نیاز
است که
انحراف از
آن مقادیر
پیشفرض
ضروری باشد.
فایل
پیکربندی
اصلی از یکی
از
دایرکتوریهای
فهرستشده
به ترتیب
اولویت
بارگذاری
میشود، و
تنها اولین
فایل
یافتشده
استفاده
میگردد: /etc/systemd/,
/run/systemd/, /usr/local/lib/systemd/ [1], /usr/lib/systemd/.
نسخه
ارائهشده
توسط
توزیعکننده
شامل
مدخلهای
کامنتشده
است که
مقادیر
پیشفرض را
به عنوان
راهنمایی
برای مدیر
سیستم نشان
میدهند.
همچنین
میتوان با
ایجاد
فایلهای
دراپاین
(drop-ins)،
همانطور
که در ادامه
شرح داده
شده است،
بازنویسیهای
محلی ایجاد
کرد. فایل
پیکربندی
اصلی را نیز
میتوان
برای این
منظور
ویرایش کرد
(یا یک نسخه
کپی در /etc/ اگر
فایل تحت /usr/
عرضه شده
باشد)، با
این حال
استفاده از
دراپاینها
برای
پیکربندی
محلی نسبت
به ایجاد
تغییرات در
فایل
پیکربندی
اصلی توصیه
میشود.
علاوه بر
فایل
پیکربندی
اصلی،
قطعهکدهای
پیکربندی
دراپاین
از مسیرهای
زیر خوانده
میشوند:
/usr/lib/systemd/*.conf.d/, /usr/local/lib/systemd/*.conf.d/, و
/etc/systemd/*.conf.d/. این
دراپاینها
اولویت
بالاتری
دارند و
فایل
پیکربندی
اصلی را
بازنویسی (override)
میکنند.
فایلها در
زیرشاخههای
پیکربندی *.conf.d/
بر اساس نام
فایل خود به
ترتیب
لغتنگاری
مرتب
میشوند،
بدون توجه
به اینکه در
کدامیک از
زیرشاخهها
قرار دارند.
هنگامی که
چندین فایل
یک گزینه
مشابه را
مشخص کنند،
برای
گزینههایی
که تنها یک
مقدار واحد
میپذیرند،
مدخل موجود
در فایلی که
در آخر مرتب
شده است
اولویت
دارد؛ و
برای
گزینههایی
که فهرستی
از مقادیر
را
میپذیرند،
مدخلها به
همان
ترتیبی که
در
فایلهای
مرتبشده
ظاهر
میشوند
جمعآوری
میگردند.
هنگامی که
بستهها
نیاز به
سفارشیسازی
پیکربندی
دارند،
میتوانند
دراپاینها
را در زیر /usr/
نصب کنند.
فایلهای
موجود در /etc/
برای مدیر
محلی سیستم
رزرو
شدهاند،
که
میتواند
از این منطق
برای
بازنویسی
فایلهای
پیکربندی
نصبشده
توسط
بستههای
توزیعکننده
استفاده
کند. برای
بازنویسی
دراپاینهای
بسته، باید
از
دراپاینها
استفاده
شود، زیرا
فایل
پیکربندی
اصلی
اولویت
پایینتری
دارد. توصیه
میشود نام
تمام
فایلها در
این
زیرشاخهها
با یک عدد
دورقمی و یک
خط تیره
شروع شود تا
مرتبسازی
سادهتر
گردد. این
امر همچنین
مفهوم
اولویتهای
دراپاین
را تعریف
میکند تا
به
ارائهدهندگان
سیستمعامل
امکان دهد
دراپاینها
را در یک
محدوده
خاص،
پایینتر
از محدوده
مورداستفاده
کاربران
عرضه کنند.
این کار
باید خطر
بازنویسی
تصادفی
دراپاینهای
تعریفشده
توسط
کاربران را
توسط
دراپاینهای
بستهها
کاهش دهد.
توصیه
میشود از
محدوده 10-40
برای
دراپاینهای
واقع در /usr/ و
از محدوده 60-90
برای
دراپاینهای
واقع در /etc/ و /run/
استفاده
شود تا
اطمینان
حاصل گردد
که
دراپاینهای
محلی و گذرا
بر
دراپاینهای
ارائهشده
توسط
توزیعکننده
سیستمعامل
اولویت
دارند.
برای
غیرفعال
کردن یک
فایل
پیکربندی
ارائهشده
توسط
توزیعکننده،
روش
توصیهشده
قرار دادن
یک پیوند
نمادین (symlink) به
/dev/null در
دایرکتوری
پیکربندی
در /etc/ با همان
نام فایل
پیکربندی
توزیعکننده
است.
تمامی
گزینهها
در بخش [Manager]
پیکربندی
میشوند:
LogColor=, LogLevel=, LogLocation=,
LogTarget=, LogTime=, DumpCore=yes,
CrashChangeVT=no, CrashShell=no, CrashAction=freeze,
ShowStatus=yes, DefaultStandardOutput=journal,
DefaultStandardError=inherit
پارامترهای
گوناگون
عملیات
پایهای
مدیر را
پیکربندی
میکند. این
گزینهها
ممکن است
توسط
آرگومانهای
خط فرمان
فرآیند و
هسته
مربوطه
بازنویسی
شوند. برای
جزئیات،
systemd(1)
را ببینید.
در نسخه
۱۹۸ اضافه
شد.
CtrlAltDelBurstAction=
مشخص
میکند که
اگر کاربر
بیش از ۷ بار
در مدت ۲
ثانیه
کلیدهای Ctrl-Alt-Delete
را فشار
دهد، چه
عملی انجام
خواهد شد.
میتواند
روی "reboot-force", "poweroff-force",
"reboot-immediate", "poweroff-immediate"
تنظیم شود
یا با "none"
غیرفعال
گردد. مقدار
پیشفرض
"reboot-force" است.
در نسخه
۲۳۲ اضافه
شد.
StatusUnitFormat=
یکی از
مقادیر
name,
description یا
combined را
میپذیرد.
اگر
name باشد،
مدیر سیستم
از نامهای
واحد در
پیامهای
وضعیت
استفاده
خواهد کرد
(مانند
"systemd-journald.service")، به
جای
توضیحات
طولانیتر
و
آگاهیبخشتر
تنظیمشده
با
Description= (مانند
"Journal Logging Service"). اگر
combined
باشد، مدیر
سیستم هم از
نام واحد و
هم از
توضیحات در
پیامهای
وضعیت
استفاده
خواهد کرد
(مانند "systemd-journald.service -
Journal Logging Service").
برای
جزئیات
درباره
نامهای
واحد و Description=،
systemd.unit(5) را
ببینید.
در نسخه
۲۴۳ اضافه
شد.
DefaultTimerAccuracySec=
دقت
پیشفرض
واحدهای
تایمر را
تنظیم
میکند. این
گزینه
مقدار
پیشفرض
سراسری را
برای تنظیم
AccuracySec= واحدهای
تایمر
کنترل
میکند؛
برای
جزئیات،
systemd.timer(5) را
ببینید.
مقدار
AccuracySec=
تنظیمشده
در هر واحد
منفرد،
پیشفرض
سراسری را
برای آن
واحد خاص
بازنویسی
میکند.
مقدار
پیشفرض 1min
است. توجه
داشته
باشید که
دقت
واحدهای
تایمر
همچنین تحت
تأثیر slack
تایمر
پیکربندیشده
برای PID 1 قرار
میگیرد،
به
TimerSlackNSec= در
ادامه
مراجعه
کنید.
در نسخه
۲۱۲ اضافه
شد.
TimerSlackNSec=
مقدار
بازه نوسان
تایمر (timer slack) را
بر حسب
نانوثانیه
برای PID 1
تنظیم
میکند، که
توسط تمام
فرآیندهای
اجراشده به
ارث برده
میشود،
مگر اینکه
به صورت
جداگانه
بازنویسی
شود، برای
نمونه با
تنظیم
TimerSlackNSec=
در واحدهای
سرویس (برای
جزئیات به
systemd.exec(5) مراجعه
کنید). بازه
نوسان
تایمر، دقت
بیداریهای
تحریکشده
توسط
تایمرهای
سیستم را
کنترل
میکند.
برای
اطلاعات
بیشتر به
prctl(2)
مراجعه
کنید. توجه
داشته
باشید که بر
خلاف بیشتر
تعاریف
بازه زمانی
دیگر، این
پارامتر در
صورتی که
هیچ واحدی
مشخص نشده
باشد، یک
مقدار صحیح
بر حسب
نانوثانیه
میگیرد.
واحدهای
زمانی
معمول نیز
قابل درک
هستند.
در نسخه
۱۹۸ اضافه
شد.
CPUAffinity=
وابستگی
به
پردازنده (CPU
affinity) را برای
مدیر سرویس
و همچنین
وابستگی
پیشفرض به
پردازنده
را برای
تمامی
فرآیندهای
منشعبشده
پیکربندی
میکند.
فهرستی از
شاخصها یا
محدودههای
پردازنده
را
میپذیرد
که با فاصله
یا کاما از
هم جدا
شدهاند.
محدودههای
پردازنده
با
شاخصهای
پایینی و
بالایی
پردازنده
که با یک خط
تیره از هم
جدا
شدهاند
مشخص
میشوند.
این گزینه
ممکن است
بیش از یک
بار مشخص
شود که در
این صورت
ماسکهای
وابستگی
پردازنده
مشخصشده
با هم ادغام
میشوند.
اگر رشته
خالی
اختصاص
داده شود،
ماسک
بازنشانی
میشود و
تمامی
تخصیصهای
پیش از آن
بیاثر
خواهند شد.
سرویسهای
منفرد
میتوانند
وابستگی
پردازنده
را برای
فرآیندهای
خود با
تنظیم
CPUAffinity= در
فایلهای
واحد
بازنویسی
کنند،
systemd.exec(5)
را ببینید.
در نسخه
۱۹۸ اضافه
شد.
NUMAPolicy=
سیاست
حافظه NUMA را
برای مدیر
سرویس و
سیاست
حافظه
پیشفرض NUMA را
برای تمامی
فرآیندهای
منشعبشده
پیکربندی
میکند.
سرویسهای
منفرد
میتوانند
سیاست
پیشفرض را
با تنظیم
NUMAPolicy=
در
فایلهای
واحد
بازنویسی
کنند،
systemd.exec(5)
را ببینید.
در نسخه
۲۴۳ اضافه
شد.
NUMAMask=
ماسک گره
NUMA را که با
سیاست NUMA
انتخابشده
مرتبط
خواهد بود
پیکربندی
میکند.
توجه داشته
باشید که
سیاستهای NUMA
از نوع
default و
local
نیازی به
ماسک گره
صریح NUMA
ندارند و
مقدار این
گزینه
میتواند
خالی باشد.
همانند
NUMAPolicy=،
مقدار
میتواند
توسط
سرویسهای
منفرد در
فایلهای
واحد
بازنویسی
شود،
systemd.exec(5) را
ببینید.
در نسخه
۲۴۳ اضافه
شد.
DefaultMemoryAccounting=, DefaultTasksAccounting=,
DefaultIOAccounting=, DefaultIPAccounting=
تنظیمات
حسابرسی
منابع
پیشفرض را
پیکربندی
میکند،
همانگونه
که برای هر
واحد توسط
MemoryAccounting=,
TasksAccounting=,
IOAccounting=,
و
IPAccounting=
پیکربندی
میشود.
برای
جزئیات در
مورد
تنظیمات هر
واحد،
systemd.resource-control(5)
را ببینید.
مقدار
پیشفرض
DefaultMemoryAccounting= برابر yes
است. مقدار
پیشفرض
DefaultTasksAccounting= برابر yes
است. سایر
تنظیمات به
طور
پیشفرض
روی no هستند.
در نسخه
۲۱۱ اضافه
شد.
DefaultTasksMax=
مقدار
پیشفرض را
برای تنظیم
TasksMax= در هر
واحد
پیکربندی
میکند.
برای
جزئیات به
systemd.resource-control(5)
مراجعه
کنید. این
تنظیم برای
تمامی
انواع
واحدهایی
که از
تنظیمات
کنترل
منابع
پشتیبانی
میکنند،
به استثنای
واحدهای slice،
اعمال
میشود.
مقدار
پیشفرض آن
۱۵٪ از
کمترین
مقدار بین
kernel.pid_max=,
kernel.threads-max= و
pids.max
گروه کنترل
(cgroup) ریشه است.
هسته دارای
یک مقدار
پیشفرض
برای
kernel.pid_max= و
یک
الگوریتم
شمارش برای
حالتهای
بیش از ۳۲
هسته است. به
عنوان
مثال، با
مقدار
پیشفرض
kernel.pid_max=، مقدار
DefaultTasksMax= به طور
پیشفرض 4915
است، اما در
سیستمهای
دیگر ممکن
است بیشتر
باشد یا در
کانتینرهای
سیستمعامل
کمتر باشد.
در نسخه
۲۲۸ اضافه
شد.
DefaultLimitCPU=, DefaultLimitFSIZE=,
DefaultLimitDATA=, DefaultLimitSTACK=,
DefaultLimitCORE=, DefaultLimitRSS=,
DefaultLimitNOFILE=, DefaultLimitAS=,
DefaultLimitNPROC=, DefaultLimitMEMLOCK=,
DefaultLimitLOCKS=, DefaultLimitSIGPENDING=,
DefaultLimitMSGQUEUE=, DefaultLimitNICE=,
DefaultLimitRTPRIO=, DefaultLimitRTTIME=
این
تنظیمات
محدودیتهای
منابع
پیشفرض
گوناگونی
را برای
فرآیندهای
اجراشده
توسط
واحدها
کنترل
میکنند.
برای
جزئیات به
setrlimit(2) مراجعه
کنید. این
تنظیمات
ممکن است در
واحدهای
منفرد با
استفاده از
دستورالعملهای
متناظر
LimitXXX=
بازنویسی
شوند و
ساختار نحو
پارامتر
مشابهی را
میپذیرند؛
برای
جزئیات،
systemd.exec(5) را
ببینید.
توجه داشته
باشید که
این
محدودیتهای
منابع
صرفاً
مقادیر
پیشفرض
برای
واحدها
هستند و بر
خود فرآیند
مدیر سرویس
(یعنی PID 1)
اعمال
نمیشوند.
بیشتر این
تنظیمات
تعییننشده
(unset) هستند، به
این معنی که
محدودیتهای
منابع از
هسته به ارث
برده
میشوند یا
در صورت
فراخوانی
در یک
کانتینر،
از مدیر
کانتینر به
ارث
میرسند. با
این حال،
موارد زیر
دارای
مقادیر
پیشفرض
هستند:
•DefaultLimitNOFILE= به
طور
پیشفرض 1024:524288
است.
•DefaultLimitMEMLOCK= به
طور
پیشفرض 8M
است.
•DefaultLimitCORE=
فاقد مقدار
پیشفرض
است اما
شایان ذکر
است که RLIMIT_CORE
توسط PID 1 روی
"infinity" تنظیم
شده است که
توسط
فرزندان آن
به ارث برده
میشود.
توجه
داشته
باشید که
مدیر سرویس
در داخل PID 1
مقادیر RLIMIT_NOFILE
و RLIMIT_MEMLOCK را به
مقادیر
بالاتری
افزایش
میدهد،
اما این
محدودیت
برای تمامی
فرآیندهای
فرزند
منشعبشده
به مقادیر
پیشفرض
ذکرشده
بازگردانده
میشود.
در نسخه
۱۹۸ اضافه
شد.
DefaultOOMPolicy=
سیاست
پیشفرض
برای واکنش
به
فرآیندهایی
که توسط
قاتل حافظه
ناکافی
لینوکس (Linux OOM killer)
یا
systemd-oomd کشته
میشوند را
پیکربندی
میکند. این
گزینه ممکن
است برای
انتخاب یک
پیشفرض
سراسری
برای تنظیم
OOMPolicy= در هر
واحد
استفاده
شود. برای
جزئیات به
systemd.service(5) مراجعه
کنید. توجه
داشته
باشید که
این
پیشفرض
برای
سرویسهایی
که
Delegate= در
آنها فعال
است
استفاده
نمیشود.
در نسخه
۲۴۳ اضافه
شد.
DefaultOOMScoreAdjust=
تنظیمات
امتیاز OOM
پیشفرض
فرآیندهای
اجراشده
توسط مدیر
سرویس را
پیکربندی
میکند. این
گزینه به
طور
پیشفرض
تعییننشده
است (به این
معنی که
فرآیندهای
منشعبشده
مقدار
تنظیم
امتیاز OOM
مدیر سرویس
را به ارث
میبرند)،
مگر اینکه
مدیر سرویس
برای یک
کاربر
غیرمجاز
(فاقد
امتیاز
ریشه) اجرا
شود، که در
این صورت
پیشفرض آن
مقدار
تنظیم
امتیاز OOM
مدیر سرویس
به اضافه
۱۰۰ خواهد
بود (این کار
باعث
میشود
فرآیندهای
سرویس تحت
فشار
حافظه، کمی
بیشتر از
خود مدیر در
معرض کشته
شدن قرار
گیرند). این
گزینه
میتواند
برای تعیین
یک پیشفرض
سراسری
برای تنظیم
OOMScoreAdjust= در هر
واحد
استفاده
شود. برای
جزئیات به
systemd.exec(5) مراجعه
کنید. توجه
داشته
باشید که
این تنظیم
هیچ تأثیری
بر مقدار
تنظیم
امتیاز OOM خود
فرآیند
مدیر سرویس
ندارد و
مقدار اصلی
تعیینشده
در هنگام
فراخوانیاش
حفظ میشود.
در نسخه
۲۵۰ اضافه
شد.
DefaultMemoryPressureWatch=,
DefaultMemoryPressureThresholdSec=
تنظیمات
پیشفرض را
برای
گزینههای
MemoryPressureWatch= و
MemoryPressureThresholdSec=
در هر واحد
پیکربندی
میکند.
برای
جزئیات به
systemd.resource-control(5)
مراجعه
کنید.
مقادیر
پیشفرض به
ترتیب "auto" و
"200ms" هستند.
این گزینه
همچنین
آستانه
نظارت بر
فشار حافظه
را برای خود
مدیر سرویس
تنظیم
میکند.
در نسخه
۲۵۴ اضافه
شد.
DefaultCPUPressureWatch=,
DefaultCPUPressureThresholdSec=
تنظیمات
پیشفرض را
برای
گزینههای
CPUPressureWatch= و
CPUPressureThresholdSec=
در هر واحد
پیکربندی
میکند.
برای
جزئیات به
systemd.resource-control(5)
مراجعه
کنید.
مقادیر
پیشفرض به
ترتیب "auto" و
"200ms" هستند.
این گزینه
همچنین
آستانه
نظارت بر
فشار
پردازنده
را برای خود
مدیر سرویس
تنظیم
میکند.
در نسخه
۲۶۱ اضافه
شد.
DefaultIOPressureWatch=,
DefaultIOPressureThresholdSec=
تنظیمات
پیشفرض را
برای
گزینههای
IOPressureWatch= و
IOPressureThresholdSec=
در هر واحد
پیکربندی
میکند.
برای
جزئیات به
systemd.resource-control(5)
مراجعه
کنید.
مقادیر
پیشفرض به
ترتیب "auto" و
"200ms" هستند.
این گزینه
همچنین
آستانه
نظارت بر
فشار
ورودی/خروجی
(IO) را برای
خود مدیر
سرویس
تنظیم
میکند.
در نسخه
۲۶۱ اضافه
شد.
RuntimeWatchdogSec=, RebootWatchdogSec=,
KExecWatchdogSec=
دیدهبان
سختافزاری
(hardware watchdog) را در
زمان اجرا و
هنگام
راهاندازی
مجدد
پیکربندی
میکند. یک
مقدار مهلت
زمانی بر
حسب ثانیه
(یا در سایر
واحدهای
زمانی در
صورت
پسونددهی
با "ms", "min", "h",
"d", "w")، یا
رشتههای
ویژه "off" یا
"default" را
میپذیرد.
اگر روی "off"
(یا به عنوان
جایگزین: "0")
تنظیم شود،
منطق
دیدهبان
غیرفعال
میشود: هیچ
دستگاه
دیدهبانی
باز،
پیکربندی
یا پینگ
نمیشود.
اگر روی
رشته ویژه
"default" تنظیم
شود،
دستگاه
دیدهبان
باز شده و در
فواصل منظم
پینگ
میشود،
اما مهلت
زمانی از
مقدار
پیشفرض
تغییر داده
نمیشود.
اگر روی هر
مقدار
زمانی
دیگری
تنظیم شود،
مهلت زمانی
دیدهبان
روی مقدار
مشخصشده
(یا مقداری
نزدیک به
آن، بسته به
قابلیتهای
سختافزاری)
پیکربندی
میگردد.
اگر RuntimeWatchdogSec=
روی مقداری
غیر از صفر
تنظیم شود،
سختافزار
دیدهبان
(/dev/watchdog0 یا مسیری
که با WatchdogDevice= یا
گزینه هسته
systemd.watchdog_device= مشخص
شده است)
طوری
برنامهریزی
میشود که
اگر در بازه
زمانی مهلت
مشخصشده
با آن تماسی
برقرار
نشود،
سیستم را به
طور خودکار
بازراهاندازی
کند. مدیر
سیستم
اطمینان
حاصل خواهد
کرد که
حداقل یک
بار در نیمی
از بازه
مهلت زمانی
مشخصشده
با آن تماس
برقرار کند.
این ویژگی
مستلزم
وجود یک
دستگاه
دیدهبان
سختافزاری
است،
همانطور
که معمولاً
در
سیستمهای
تعبیهشده
(embedded) و سرورها
وجود دارد.
همه
دیدهبانهای
سختافزاری
امکان
پیکربندی
تمامی
مقادیر
ممکن برای
مهلت زمانی
راهاندازی
مجدد را
نمیدهند
که در این
صورت
نزدیکترین
مهلت زمانی
موجود
انتخاب
میشود.
RebootWatchdogSec= ممکن
است برای
پیکربندی
دیدهبان
سختافزاری
هنگام
درخواست
راهاندازی
مجدد سیستم
استفاده
شود. این
گزینه به
عنوان یک
تور ایمنی
عمل میکند
تا اطمینان
حاصل شود که
راهاندازی
مجدد حتی در
صورت اتمام
مهلت
زمانیِ یک
تلاش تمیز
برای
راهاندازی
مجدد رخ
میدهد.
توجه داشته
باشید که
مهلت زمانی
RebootWatchdogSec= تنها
برای فاز
دوم
راهاندازی
مجدد اعمال
میشود،
یعنی پس از
اینکه تمام
سرویسهای
معمولی
قبلاً
متوقف
شدهاند، و
پس از اینکه
فرآیند
مدیر سیستم
و سرویس (PID 1) با
باینری systemd-shutdown
جایگزین
شده است؛
برای
جزئیات به
bootup(7) سیستم
مراجعه
کنید. در طول
فاز اول
عملیات
خاموش شدن،
مدیر سیستم
و سرویس
همچنان در
حال اجرا
باقی
میماند و
بنابراین
RuntimeWatchdogSec= همچنان
رعایت
میشود. به
منظور
تعریف یک
مهلت زمانی
برای این
فاز اول
خاموش شدن
سیستم، JobTimeoutSec=
و JobTimeoutAction= را در
بخش [Unit] از
واحد shutdown.target
پیکربندی
کنید. به طور
پیشفرض،
RuntimeWatchdogSec= روی 0
(خاموش) و
RebootWatchdogSec= روی 10min
تنظیم شده
است.
KExecWatchdogSec= ممکن
است برای
فعالسازی
اضافی
دیدهبان
در هنگام
اجرای kexec به
جای
راهاندازی
مجدد
استفاده
شود. توجه
داشته
باشید که
اگر هسته،
دیدهبان
را در هنگام
kexec بازنشانی
نکند (بسته
به
سختافزار
و/یا درایور
خاص)، در این
صورت ممکن
است
دیدهبان
پس از
موفقیت kexec
غیرفعال
نشود و در
نتیجه
سیستم ممکن
است
بازراهاندازی
شود، مگر
اینکه RuntimeWatchdogSec=
نیز
همزمان
فعال شده
باشد. به
همین دلیل
توصیه
میشود KExecWatchdogSec=
تنها در
صورتی فعال
شود که RuntimeWatchdogSec=
نیز فعال
باشد.
در صورتی
که
دیدهبان
سختافزاری
در دسترس
نباشد، این
تنظیمات
هیچ تأثیری
ندارند.
در نسخه
۱۹۸ اضافه
شد.
RuntimeWatchdogPreSec=
مقدار
پیشمهلت (pre-timeout)
دستگاه
دیدهبان
سختافزاری
را
پیکربندی
میکند. یک
مقدار مهلت
بر حسب
ثانیه (یا در
سایر
واحدهای
زمانی
مشابه
RuntimeWatchdogSec=)
را
میپذیرد.
یک
پیشمهلت
دیدهبان،
اعلانی است
که توسط
دیدهبان
قبل از رخ
دادن
احتمالی
بازنشانی
دیدهبان
در صورتی که
دیدهبان
سرویسدهی
نشده باشد،
ایجاد
میشود. این
اعلان توسط
هسته
مدیریت
میشود و
میتواند
با استفاده
از
RuntimeWatchdogPreGovernor=
برای انجام
یک اقدام
(مانند
ایجاد kernel panic)
پیکربندی
شود. همه
سختافزارها
یا
درایورهای
دیدهبان
از تولید
پیشمهلت
پشتیبانی
نمیکنند و
بسته به
وضعیت
سیستم،
ممکن است
هسته
نتواند
اقدام
پیکربندیشده
را قبل از
راهاندازی
مجدد
دیدهبان
انجام دهد.
دیدهبان
پیکربندی
خواهد شد تا
رویداد
پیشمهلت
را به میزان
زمان
مشخصشده
توسط
RuntimeWatchdogPreSec=
قبل از مهلت
دیدهبان
زمان اجرا
(تنظیمشده
توسط
RuntimeWatchdogSec=)
ایجاد کند.
برای مثال،
اگر
RuntimeWatchdogSec=30 و
RuntimeWatchdogPreSec=10 داشته
باشیم، در
این صورت
اگر
دیدهبان
به مدت ۲۰
ثانیه پینگ
نشده باشد
(۱۰ ثانیه
قبل از فعال
شدن
دیدهبان)،
رویداد
پیشمهلت
رخ خواهد
داد. به طور
پیشفرض،
RuntimeWatchdogPreSec= روی 0
(خاموش)
تنظیم است.
مقدار
تعیینشده
برای
RuntimeWatchdogPreSec=
باید
کوچکتری از
مقدار مهلت
زمانی
RuntimeWatchdogSec=
باشد. اگر
دیدهبان
سختافزاری
در دسترس
نباشد یا
دیدهبان
سختافزاری
از
پیشمهلت
پشتیبانی
نکند، این
تنظیم هیچ
تأثیری
ندارد و اگر
این تنظیم
بزرگتر از
مهلت زمانی
واقعی
دیدهبان
باشد توسط
هسته
نادیده
گرفته
خواهد شد.
در نسخه
۲۵۱ اضافه
شد.
RuntimeWatchdogPreGovernor=
اقدامی
که توسط
دستگاه
دیدهبان
سختافزاری
هنگام
منقضی شدن
پیشمهلت
انجام
میشود را
پیکربندی
میکند.
اقدام
پیشفرض
برای
رویداد
پیشمهلت
به
پیکربندی
هسته بستگی
دارد، اما
معمولاً
ثبت یک پیام
هسته در لاگ
است. برای
فهرستی از
اقدامات
معتبر در
دسترس برای
یک دستگاه
دیدهبان
معین،
محتوای
فایل
/sys/class/watchdog/watchdog
X/pretimeout_available_governors
را بررسی
کنید. به طور
معمول،
انواع
گاورنر (governor)
موجود
noop و
panic
هستند. در
دسترس
بودن،
نامها و
عملکرد
ممکن است
بسته به
درایور
دستگاه
خاصِ
مورداستفاده
متفاوت
باشد. اگر
فایل sysfs با
نام pretimeout_available_governors
خالی باشد،
گاورنر
ممکن است به
عنوان یک
ماژول هسته
ساخته شده
باشد و ممکن
است نیاز به
بارگذاری
دستی داشته
باشد (مانند
pretimeout_noop.ko)، یا
اینکه
دستگاه
دیدهبان
از
پیشمهلت
پشتیبانی
نکند.
در نسخه
۲۵۱ اضافه
شد.
WatchdogDevice=
دستگاه
دیدهبان
سختافزاری
را که
تایمرهای
دیدهبان
زمان اجرا و
خاموش شدن
باز کرده و
استفاده
میکنند
پیکربندی
میکند.
مقدار
پیشفرض آن
/dev/watchdog0 است. در
صورتی که
دیدهبان
سختافزاری
در دسترس
نباشد، این
تنظیم هیچ
تأثیری
ندارد.
در نسخه
۲۳۶ اضافه
شد.
CapabilityBoundingSet=
کنترل
میکند که
کدام
قابلیتها
(capabilities) در
مجموعه
مرزبندی
قابلیتها
(bounding set) برای PID 1 و
فرزندان آن
گنجانده
شوند. برای
جزئیات به
capabilities(7) مراجعه
کنید.
فهرستی از
نامهای
قابلیت را
که با فاصله
از هم جدا
شدهاند،
همانگونه
که توسط
cap_from_name(3)
خوانده
میشود،
میپذیرد.
قابلیتهای
فهرستشده
در مجموعه
مرزبندی
گنجانده
خواهند شد و
سایر
قابلیتها
حذف
میشوند.
اگر پیش از
فهرست
قابلیتها
نماد ~ قرار
گیرد، همه
قابلیتها
به جز موارد
فهرستشده
گنجانده
میشوند و
اثر تخصیص
معکوس
میگردد.
توجه داشته
باشید که
این گزینه
همچنین بر
قابلیتهای
مربوطه در
مجموعههای
قابلیت
مؤثر (effective)،
مجاز (permitted) و
قابل توارث
(inheritable) تأثیر
میگذارد.
مجموعه
مرزبندی
قابلیتها
همچنین
ممکن است با
استفاده از
دستورالعمل
CapabilityBoundingSet= برای
واحدها به
صورت
جداگانه
پیکربندی
شود، اما
توجه داشته
باشید که
قابلیتهای
حذفشده
برای PID 1 را
نمیتوان
دوباره در
واحدهای
منفرد به
دست آورد؛
آنها برای
همیشه از
دست
رفتهاند.
در نسخه
۱۹۸ اضافه
شد.
NoNewPrivileges=
یک
آرگومان
بولی
میپذیرد.
اگر true باشد،
تضمین
میکند که PID 1
و تمام
فرزندان آن
هرگز
نتوانند از
طریق
execve(2)
امتیازات
جدیدی کسب
کنند (برای
مثال از
طریق
بیتهای setuid
یا setgid، یا
قابلیتهای
فایلسیستم).
مقدار
پیشفرض آن
false است.
توزیعهای
همهمنظوره
معمولاً به
فایلهای
اجرایی با
بیتهای setuid
یا setgid متکی
هستند و
بنابراین
با فعال
بودن این
گزینه به
درستی کار
نخواهند
کرد.
واحدهای
منفرد
نمیتوانند
این گزینه
را غیرفعال
کنند.
همچنین
ببینید:
No New Privileges
Flag[2].
در نسخه
۲۳۹ اضافه
شد.
ProtectSystem=
یک
آرگومان
بولی یا
رشته "auto" را
میپذیرد.
اگر روی true
تنظیم شود،
/usr/ را به صورت
فقطخواندنی
مجدداً
متصل (remount)
میکند. اگر
روی "auto"
(پیشفرض)
تنظیم شده
باشد و در یک
initrd در حال
اجرا باشد
معادل true و در
غیر این
صورت معادل
false است. این
گزینه یک
زیرمجموعه
محدود از
تنظیم
همنام در
هر واحد را
پیادهسازی
میکند،
برای
جزئیات
systemd.exec(5)
را ببینید:
در حال
حاضر،
مقادیر "full"
یا "strict"
پشتیبانی
نمیشوند.
در نسخه
۲۵۶ اضافه
شد.
RestrictFileSystemAccess=
یک
آرگومان
بولی یا
مقدار ویژه
"exec" را
میپذیرد.
پیشفرض آن
"no" است.
هنگامی که
فعال باشد، PID
1 یک برنامه BPF LSM
را
بارگذاری
میکند که
یک سیاست
اجرای
پیشفرضانکار
(deny-default) را اعمال
میکند:
تنها به
باینریهای
مستقر روی
دستگاههای
بلوکی
امضاشده dm-verity (و
initramfs در طول
راهاندازی
اولیه)
اجازه اجرا
داده
میشود.
اجرا از tmpfs، procfs،
sysfs،
دستگاههای
امضانشده dm-verity
و
نگاشتهای
حافظه
اجرایی
ناشناس رد
میشود.
این تنظیم
به عنوان
یکی از
مؤلفههای
یک سیستم
مبتنی بر
ایمیج و
کاملاً
تأییدشده
در نظر
گرفته شده
است، که در
آن کل
زنجیره بوت
(سفتافزار،
ایمیج
هسته، خط
فرمان
هسته، initramfs)
اندازهگیری
و تصدیق
میشود. در
یک سیستم
همهمنظوره
بدون چنین
ضمانتهایی،
این گزینه
به خودی خود
یک مرز
امنیتی
معنادار
ایجاد
نمیکند: یک
مهاجم با
امتیاز
کافی برای
ویرایش system.conf،
تغییر خط
فرمان هسته
یا kexec به یک initrd
امضانشده
میتواند
این سیاست
را غیرفعال
یا دور
بزند.
قلابهای
اجرایی (enforcement hooks)،
فراخوانی
execve()
باینریهای
نامعتمد
("bprm_check_security")،
نگاشتهای
حافظه PROT_EXEC از
جمله
کتابخانههای
اشتراکی
("mmap_file") و
گذارهای
نوشتنبهاجرا
مانند
کامپایل
درجا (JIT) ("file_mprotect")
را مسدود
میکنند.
توجه
داشته
باشید که
اجرا از
نقاط اتصال
overlayfs مسدود
میشود،
حتی اگر
لایههای
زیرین روی
دستگاههای
dm-verity امضاشده
مستقر
باشند،
زیرا
برنامه BPF به
جای دستگاه
بلوکی
زیرین،
شماره
دستگاه
ناشناس
فایلسیستم
overlay را
میبیند.
فایلسیستمهای
چنددستگاهی
مانند btrfs نیز
به طور
مشابه
پشتیبانی
نمیشوند.
توجه
داشته
باشید که
بدون
اقدامات
بیشتر برای
ایمنسازی
سیستم،
میتوان از
kexec برای دور
زدن این
مورد
استفاده
کرد.
این امر
مستلزم آن
است که هسته
با "dm_verity.require_signatures=1" در
خط فرمان
هسته و با
فعال بودن BPF LSM
بوت شود ("lsm=...,bpf").
اگر هر یک از
این
پیشنیازها
برآورده
نشود، PID 1 از
تکمیل
فرایند
راهاندازی
خودداری
خواهد کرد.
مقدار "yes"
معادل "exec"
است.
حالتهای
بیشتری
ممکن است در
آینده
اضافه
شوند.
این گزینه
همچنین
ممکن است از
طریق گزینه
خط فرمان
هسته systemd.restrict_filesystem_access=
تنظیم شود،
kernel-command-line(7) را
ببینید.
در نسخه
۲۶۱ اضافه
شد.
SystemCallArchitectures=
فهرستی
از
شناسههای
معماری را
که با فاصله
از هم جدا
شدهاند
میپذیرد.
مشخص
میکند که
فراخوانیهای
سیستمی از
کدام
معماریها
ممکن است در
این سیستم
فراخوانی
شوند. این
گزینه
میتواند
به عنوان
روشی مؤثر
برای
غیرفعال
کردن
فراخوانی
باینریهای
غیربومی در
سراسر
سیستم
استفاده
شود، برای
مثال برای
جلوگیری از
اجرای
باینریهای
۳۲ بیتی x86 در
سیستمهای
۶۴ بیتی x86-64.
این گزینه
در سطح کل
سیستم عمل
میکند و
عملکردی
مشابه با
تنظیم
SystemCallArchitectures=
در
فایلهای
واحد دارد؛
برای
جزئیات به
systemd.exec(5) مراجعه
کنید. این
تنظیم به
طور
پیشفرض
روی یک
فهرست خالی
تنظیم شده
است که در
این صورت
هیچ فیلتری
روی
فراخوانیهای
سیستمی بر
اساس
معماری
اعمال
نمیشود.
شناسههای
معماری
شناختهشده
عبارتند از
"x86", "x86-64", "x32", "arm" و
شناسه ویژه
"native". مورد
اخیر به طور
ضمنی به
معماری
بومی سیستم
نگاشت
میشود (یا
بهطور
دقیقتر،
معماریای
که مدیر
سیستم برای
آن کامپایل
شده است).
برای
جلوگیری از
اجرای
هرگونه
باینری
غیربومی،
این تنظیم
را روی "native"
قرار دهید.
هنگامی که
یک باینری
یک
فراخوانی
سیستمی از
معماریای
را اجرا
میکند که
در این
تنظیم
فهرست نشده
است،
بلافاصله
با سیگنال SIGSYS
خاتمه
مییابد.
در نسخه
۲۰۹ اضافه
شد.
DefaultSmackProcessLabel=
یک برچسب
امنیتی
SMACK64
را به عنوان
آرگومان
میپذیرد.
در صورتی که
SmackProcessLabel= در واحد
تنظیم نشده
باشد،
فرآیند
اجراشده
توسط واحد
تحت این
برچسب
راهاندازی
خواهد شد.
برای
جزئیات به
systemd.exec(5) مراجعه
کنید.
اگر مقدار
برابر "/"
باشد، تنها
برچسبهای
مشخصشده
با SmackProcessLabel=
اختصاص
داده
میشوند و
پیشفرض
زمان
کامپایل
نادیده
گرفته
میشود.
در نسخه
۲۵۲ اضافه
شد.
DefaultRestrictSUIDSGID=
یک
آرگومان
بولی
میپذیرد.
این گزینه
به عنوان
پیشفرضی
برای
واحدهایی
که فاقد
تعریف صریح
برای
RestrictSUIDSGID=
هستند
استفاده
میشود.
برای
جزئیات به
systemd.exec(5) مراجعه
کنید.
در نسخه
۲۵۸ اضافه
شد.
DefaultTimeoutStartSec=, DefaultTimeoutStopSec=,
DefaultTimeoutAbortSec=, DefaultRestartSec=
مهلتهای
زمانی
پیشفرض را
برای شروع،
توقف و لغو
واحدها و
همچنین
مدتزمان
خواب
پیشفرض
بین
راهاندازیهای
مجدد
خودکار
واحدها را
پیکربندی
میکند،
همانطور
که برای هر
واحد در
TimeoutStartSec=,
TimeoutStopSec=,
TimeoutAbortSec= و
RestartSec=
پیکربندی
میشود
(برای
سرویسها،
برای
جزئیات
درباره
تنظیمات هر
واحد به
systemd.service(5)
مراجعه
کنید). برای
واحدهای
غیرسرویس،
DefaultTimeoutStartSec= مقدار
پیشفرض
TimeoutSec=
را تعیین
میکند.
مقدار
پیشفرض
DefaultTimeoutStartSec= و DefaultTimeoutStopSec=
در مدیر
سیستم ۹۰
ثانیه و در
مدیر کاربر
۹۰ ثانیه
است. DefaultTimeoutAbortSec= به
طور
پیشفرض
تنظیم نشده
است تا
تمامی
واحدها به
TimeoutStopSec=
پسنشینی (fall back)
کنند. DefaultRestartSec= به
طور
پیشفرض 100 ms
است.
در نسخه
۲۰۹ اضافه
شد.
DefaultDeviceTimeoutSec=
مهلت
زمانی
پیشفرض
برای
انتظار
دستگاهها
را
پیکربندی
میکند. این
گزینه را
میتوان
برای هر
دستگاه از
طریق گزینه
x-systemd.device-timeout= در /etc/fstab و
/etc/crypttab تغییر
داد (به
systemd.mount(5) و
crypttab(5) مراجعه
کنید).
پیشفرض آن
در مدیر
سیستم ۹۰
ثانیه و در
مدیر کاربر
۹۰ ثانیه
است.
در نسخه
۲۵۲ اضافه
شد.
DefaultStartLimitIntervalSec=,
DefaultStartLimitBurst=
محدودیت
نرخ
پیشفرض
شروع واحد
را
پیکربندی
میکند،
همانگونه
که برای هر
سرویس توسط
StartLimitIntervalSec= و
StartLimitBurst=
پیکربندی
میشود.
برای
جزئیات در
مورد
تنظیمات هر
سرویس،
systemd.service(5)
را ببینید.
DefaultStartLimitIntervalSec= به طور
پیشفرض 10s
است.
DefaultStartLimitBurst= به
طور
پیشفرض 5
است.
در نسخه
۲۰۹ اضافه
شد.
ReloadLimitIntervalSec=, ReloadLimitBurst=
محدودیت
نرخ برای
درخواستهای
daemon-reload و (از نسخه
۲۵۶) daemon-reexec. این
تنظیم برای
هر دو
عملیات
اعمال
میشود،
اما
محدودیتهای
نرخ به طور
جداگانه
ردیابی
میشوند. به
طور
پیشفرض
تعییننشده
است و هر
تعداد
عملیات را
میتوان در
هر زمان
درخواست
کرد.
ReloadLimitIntervalSec=
مقداری بر
حسب ثانیه
برای
پیکربندی
پنجره
محدودیت
نرخ
میگیرد، و
ReloadLimitBurst= یک عدد
صحیح مثبت
را برای
پیکربندی
حداکثر
تعداد مجاز
عملیات در
پنجره
زمانی
پیکربندیشده
دریافت
میکند.
در نسخه
۲۵۳ اضافه
شد.
EventLoopRateLimitIntervalSec=,
EventLoopRateLimitBurst=
محدودیت
نرخ
اعمالشده
بر حلقه
رویداد
اصلی (main event loop)
مدیر را
پیکربندی
میکند. اگر
حلقه
رویداد در
طول
EventLoopRateLimitIntervalSec=
بیش از
EventLoopRateLimitBurst=
بار تکرار
شود،
پردازش
رویداد
برای
جلوگیری از
مصرف بیش از
حد
پردازنده
به طور
خلاصه
متوقف
میشود.
EventLoopRateLimitIntervalSec= به
طور
پیشفرض 1s
است.
EventLoopRateLimitBurst= به
طور
پیشفرض 50000
است. این
تنظیمات
همچنین
میتوانند
در خط فرمان
هسته از
طریق
systemd.event_loop_ratelimit_interval_sec= و
systemd.event_loop_ratelimit_burst=
تنظیم شوند.
در نسخه
۲۶۱ اضافه
شد.
MinimumUptimeSec=
حداقل
مدتزمان
روشن بودن
سیستم (uptime) را
مشخص
میکند که
باید قبل از
اجرای
خاموشی به
آن دست یافت.
مقدار
پیشفرض آن 15s
است. این
سازوکار
برای
جلوگیری از
حلقههای
راهاندازی
مجدد با
بسامد بالا
معرفی شده
است،
هنگامی که
نقصهای
فنی باعث
خاموش شدن
خودکار در
طول فرآیند
بوت
میشوند. هر
چرخه
راهاندازی
مجدد تا
حداقل زمان
مشخصشده
به تأخیر
میافتد و
به کاربر
این فرصت را
میدهد تا
قبل از
ادامه
خاموشی،
محتویات
صفحه را
بررسی کرده
یا به نحو
دیگری با
دستگاه
تعامل
برقرار کند.
این تأخیر
در آخرین
فاز خاموش
شدن سیستم
رخ میدهد،
بلافاصله
قبل از
اینکه
فراخوانی
سیستمی
reboot()
اجرا شود.
اگر سیستم
از قبل
طولانیتر
از زمان
مشخصشده
در حال اجرا
بوده باشد،
این تنظیم
هیچ تأثیری
نخواهد
داشت. این
منطق
همچنین در
محیطهای
کانتینری
نادیده
گرفته
میشود.
برای
غیرفعال
کردن این
منطق، آن را
روی صفر
تنظیم کنید.
در نسخه
۲۶۱ اضافه
شد.
DefaultEnvironment=
متغیرهای
محیطی
ارسالشده
به تمام
فرآیندهای
اجراشده را
پیکربندی
میکند.
فهرستی از
انتسابهای
متغیر را که
با فاصله از
هم جدا
شدهاند
میپذیرد.
برای
جزئیات
درباره
متغیرهای
محیطی به
environ(7)
مراجعه
کنید. این
بلوک محیطی
داخلی است و
تغییرات در
/proc/PID/environ مدیر
منعکس
نمیشوند.
گسترش
مشخصکنندههای
ساده با
علامت "%"
پشتیبانی
میشود،
برای
فهرستی از
مشخصکنندههای
پشتیبانیشده
به بخش زیر
مراجعه
کنید.
مثال:
DefaultEnvironment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"
سه متغیر
"VAR1", "VAR2", "VAR3" را
مقداردهی
میکند.
در نسخه
۲۰۵ اضافه
شد.
ManagerEnvironment=
متغیرهای
محیطی را
برای خود
فرآیند
مدیر تنظیم
میکند.
فهرستی از
انتسابهای
متغیرِ
جداشده با
فاصله را در
همان قالبی
که برای
DefaultEnvironment=
ذکر شد (به
بالا
مراجعه
کنید)
میپذیرد.
این
متغیرها با
بلوک محیطی
موجود در
فرآیند
مدیر ادغام
میشوند. به
ویژه، در
مورد مدیر
سیستم، این
بلوک شامل
متغیرهایی
است که توسط
هسته بر
اساس خط
فرمان هسته
تنظیم
شدهاند، و
در مورد
مدیر
کاربر،
متغیرهایی
است که توسط
مدیر سیستم
ارسال
شدهاند. پس
از ادغام آن
متغیرها،
آنها تا
زمان
بازنویسی
باقی
خواهند
ماند، حتی
اگر مدیر
دوباره
بارگذاری (reload)
یا مجدداً
اجرا (reexecute) شود.
در مورد
مدیر
کاربر، این
متغیرها
توسط
فرآیندهای
ایجادشده
توسط مدیر
نیز به ارث
برده
میشوند.
همانند
DefaultEnvironment=، این
بلوک محیطی
داخلی است و
تغییرات در
/proc/PID/environ مدیر
منعکس
نمیشوند.
تنظیم
متغیرهای
محیطی برای
فرآیند
مدیر ممکن
است برای
اصلاح
رفتار آن
مفید باشد.
برای توضیح
برخی از
متغیرهای
قابلفهم
برای systemd، Known Environment
Variables[3] را
ببینید.
گسترش
مشخصکنندههای
ساده با
علامت "%"
پشتیبانی
میشود،
برای
فهرستی از
مشخصکنندههای
پشتیبانیشده
به بخش زیر
مراجعه
کنید.
در نسخه
۲۴۸ اضافه
شد.
DefaultMemoryZSwapWriteback=
یک
آرگومان
بولی
میپذیرد.
در صورت
مشخص نشدن،
پیشفرض آن true
است. این
گزینه به
عنوان یک
پیشفرض
برای
واحدهایی
که فاقد
تعریف صریح
برای
MemoryZSwapWriteback=
هستند
استفاده
میشود.
برای
جزئیات به
systemd.resource-control(5)
مراجعه
کنید.
در نسخه
۲۶۱ اضافه
شد.
مشخصکنندهها
ممکن است در
تنظیمات
DefaultEnvironment= و ManagerEnvironment=
استفاده
شوند.
گسترشهای
زیر
پشتیبانی
میشوند:
جدول ۱. مشخصکنندههای
موجود
| مشخصکننده |
معنی |
جزئیات |
| "%a" |
معماری |
رشته
کوتاهی که
معماری
سیستم محلی
را مشخص
میکند.
رشتهای
مانند x86، x86-64
یا arm64. برای
فهرست
کامل،
معماریهای
تعریفشده
برای ConditionArchitecture=
در systemd.unit(5) را
ببینید. |
| "%A" |
نسخه
ایمیج
سیستمعامل |
شناسه
نسخه ایمیج
سیستمعاملِ
سیستم در
حال اجرا،
همانطور
که از فیلد
IMAGE_VERSION= در /etc/os-release
خوانده
میشود. اگر
تنظیم نشده
باشد، به یک
رشته خالی
تبدیل
میشود.
برای
اطلاعات
بیشتر به
os-release(5) مراجعه
کنید. |
| "%b" |
شناسه بوت |
شناسه بوت
سیستم در
حال اجرا،
قالببندیشده
به صورت
رشته. برای
اطلاعات
بیشتر به random(4)
مراجعه
کنید. |
| "%B" |
شناسه
ساخت
سیستمعامل |
شناسه
ساخت
سیستمعاملِ
سیستم در
حال اجرا،
همانطور
که از فیلد
BUILD_ID= در /etc/os-release
خوانده
میشود. اگر
تنظیم نشده
باشد، به یک
رشته خالی
تبدیل
میشود.
برای
اطلاعات
بیشتر به
os-release(5) مراجعه
کنید. |
| "%H" |
نام
میزبان |
نام
میزبان
سیستم در
حال اجرا. |
| "%l" |
نام کوتاه
میزبان |
نام
میزبان
سیستم در
حال اجرا،
کوتاهشده
در اولین
نقطه برای
حذف هرگونه
مؤلفه
دامنه. |
| "%m" |
شناسه
ماشین |
شناسه
ماشینِ
سیستم در
حال اجرا،
قالببندیشده
به صورت
رشته. برای
اطلاعات
بیشتر به
machine-id(5) مراجعه
کنید. |
| "%M" |
شناسه
ایمیج
سیستمعامل |
شناسه
ایمیج
سیستمعاملِ
سیستم در
حال اجرا،
همانطور
که از فیلد
IMAGE_ID= در /etc/os-release
خوانده
میشود. اگر
تنظیم نشده
باشد، به یک
رشته خالی
تبدیل
میشود.
برای
اطلاعات
بیشتر به
os-release(5) مراجعه
کنید. |
| "%o" |
شناسه
سیستمعامل |
شناسه
سیستمعاملِ
سیستم در
حال اجرا،
همانطور
که از فیلد
ID= در /etc/os-release
خوانده
میشود.
برای
اطلاعات
بیشتر به
os-release(5) مراجعه
کنید. |
| "%v" |
انتشار
هسته |
همانند
خروجی uname -r. |
| "%w" |
شناسه
نسخه
سیستمعامل |
شناسه
نسخه
سیستمعاملِ
سیستم در
حال اجرا،
همانطور
که از فیلد
VERSION_ID= در /etc/os-release
خوانده
میشود. اگر
تنظیم نشده
باشد، به یک
رشته خالی
تبدیل
میشود.
برای
اطلاعات
بیشتر به
os-release(5) مراجعه
کنید. |
| "%W" |
شناسه
گونه
سیستمعامل |
شناسه
گونه
سیستمعاملِ
سیستم در
حال اجرا،
همانطور
که از فیلد
VARIANT_ID= در /etc/os-release
خوانده
میشود. اگر
تنظیم نشده
باشد، به یک
رشته خالی
تبدیل
میشود.
برای
اطلاعات
بیشتر به
os-release(5) مراجعه
کنید. |
| "%T" |
دایرکتوری
فایلهای
موقت |
این یا /tmp است
یا مسیری که
"$TMPDIR"، "$TEMP" یا
"$TMP" روی آن
تنظیم
شدهاند.
(توجه داشته
باشید که
دایرکتوری
ممکن است
بدون ممیز
پایانی
مشخص شود.) |
| "%V" |
دایرکتوری
برای
فایلهای
موقت
بزرگتر و
پایدارتر |
این یا /var/tmp
است یا
مسیری که
"$TMPDIR"، "$TEMP" یا
"$TMP" روی آن
تنظیم
شدهاند.
(توجه داشته
باشید که
دایرکتوری
ممکن است
بدون ممیز
پایانی
مشخص شود.) |
| "%h" |
دایرکتوری
خانگی
کاربر |
این
دایرکتوری
خانگی
کاربر
اجراکننده
نمونه مدیر
سرویس
است. |
| "%u" |
نام
کاربری |
این نام
کاربری
کاربر
اجراکننده
نمونه مدیر
سرویس
است. |
| "%U" |
شناسه
کاربر |
این شناسه
کاربر (UID)
کاربر
اجراکننده
نمونه مدیر
سرویس
است. |
| "%g" |
گروه اصلی |
این گروه
اصلیِ
کاربر
اجراکننده
نمونه مدیر
سرویس
است. |
| "%G" |
شناسه
گروه اصلی |
این شناسه
گروه اصلیِ
(GID) کاربر
اجراکننده
نمونه مدیر
سرویس
است. |
| "%s" |
پوسته
کاربر |
این پوسته
(shell) کاربر
اجراکننده
نمونه مدیر
سرویس
است. |
| "%%" |
علامت
درصد تکی |
برای مشخص
کردن یک
علامت درصد
تکی، از "%%"
به جای "%"
استفاده
کنید. |
systemd 252
گزینه
DefaultBlockIOAccounting= منسوخ
شد. لطفاً به
سلسلهمراتب
یکپارچه cgroup
سوئیچ
کنید.
systemd 258
تنظیم
DefaultCPUAccounting= منسوخ
شده است،
زیرا
حسابرسی CPU
همیشه در
سلسلهمراتب
یکپارچه cgroup
در دسترس
است و چنین
تنظیمی
تأثیری
ندارد.
- 1.
- 💣💥🧨💥💥💣
لطفاً توجه
داشته
باشید که
این
فایلهای
پیکربندی
باید در
تمام
زمانها در
دسترس
باشند. اگر
/usr/local/ یک
پارتیشن
جداگانه
باشد، ممکن
است در
مراحل
اولیه بوت
در دسترس
نباشد و
نباید برای
پیکربندی
استفاده
شود.
- 2.
- No New Privileges Flag
- 3.
- Known Environment Variables