MACHINECTL(1) machinectl MACHINECTL(1)

machinectl - کنترل و مدیریت ماشین‌های مجازی و کانتینرهای سیستم‌دی

machinectl [OPTIONS...] {COMMAND} [NAME...]

machinectl ممکن است برای بازرسی و کنترل وضعیت مدیر ثبت ماشین‌های مجازی و کانتینرهای systemd(1) یعنی systemd-machined.service(8) استفاده شود.

machinectl ممکن است برای اجرای عملیات روی ماشین‌ها و ایمیج‌ها استفاده شود. ماشین‌ها در این مفهوم نمونه‌های در حال اجرای موارد زیر در نظر گرفته می‌شوند:

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

ماشین‌ها با نام‌هایی شناسایی می‌شوند که از همان قوانین نام‌های میزبان یونیکس و DNS پیروی می‌کنند. برای جزئیات، بخش‌های زیر را ببینید.

ماشین‌ها از ایمیج‌های دیسک یا فایل‌سیستم نمونه‌سازی می‌شوند که اغلب — اما نه لزوماً — نامی یکسان با ماشین‌های در حال اجرا از روی آن‌ها دارند. ایمیج‌ها در این مفهوم ممکن است موارد زیر باشند:

•درخت‌های دایرکتوری حاوی یک سیستم‌عامل، شامل دایرکتوری‌های سطح بالا مانند /usr/، /etc/، و غیره.
•زیرحجم‌های btrfs حاوی درخت‌های سیستم‌عامل، مشابه با درخت‌های دایرکتوری معمولی.
•فایل‌های دودویی ایمیج دیسک خام ("raw") حاوی جدول‌های پارتیشن MBR یا GPT و فایل‌سیستم‌های لینوکس.
•به همین ترتیب، دستگاه‌های بلوکی حاوی جدول‌های پارتیشن MBR یا GPT و فایل‌سیستم‌ها.
•درخت فایل‌سیستم خود سیستم‌عامل میزبان.

ایمیج‌ها می‌توانند از طریق ابزار importctl(1) دانلود، وارد (import) و صادر (export) شوند.

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

list

فهرست کردن ماشین‌های مجازی و کانتینرهای در حال اجرای فعلی (برخط). برای برشمردن ایمیج‌های ماشینی که می‌توانند راه‌اندازی شوند، از list-images (در ادامه را ببینید) استفاده کنید. توجه داشته باشید که این دستور به صورت پیش‌فرض ماشین ویژه ".host" را پنهان می‌کند. از سوییچ --all برای نمایش آن استفاده کنید.

افزوده شده در نگارش 206.

status NAME...

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

افزوده شده در نگارش 206.

show [NAME...]

نمایش ویژگی‌های یک یا چند ماشین مجازی یا کانتینر ثبت‌شده، یا خود مدیر. اگر آرگومانی مشخص نشود، ویژگی‌های مدیر نمایش داده خواهد شد. اگر یک NAME مشخص شود، ویژگی‌های این ماشین مجازی یا کانتینر نمایش داده می‌شود. به طور پیش‌فرض، ویژگی‌های خالی پنهان می‌شوند. از --all برای نمایش آن‌ها نیز استفاده کنید. برای انتخاب ویژگی‌های خاص جهت نمایش، از --property= استفاده کنید. این دستور برای زمان‌هایی در نظر گرفته شده که خروجی قابل تجزیه توسط رایانه مورد نیاز است، و درخت گروه کنترل (cgroup) یا ورودی‌های ژورنال را چاپ نمی‌کند. اگر به دنبال خروجی قالب‌بندی‌شده و خوانا برای انسان هستید از status استفاده کنید.

افزوده شده در نگارش 206.

start NAME...

راه‌اندازی یک کانتینر به عنوان یک سرویس سیستمی، با استفاده از systemd-nspawn(1). این کار systemd-nspawn@.service را برای نام ماشین مشخص‌شده نمونه‌سازی و اجرا می‌کند، مشابه با اثر systemctl start روی نام سرویس. systemd-nspawn به دنبال یک ایمیج کانتینر با نام مشخص‌شده در /var/lib/machines/ (و سایر مسیرهای جستجو، در ادامه را ببینید) می‌گردد و آن را اجرا می‌کند. از list-images (در ادامه را ببینید) برای فهرست کردن ایمیج‌های کانتینر موجود جهت راه‌اندازی استفاده کنید.

توجه داشته باشید که systemd-machined.service(8) با انواع دیگری از مدیران کانتینر و ماشین مجازی نیز تعامل دارد، و systemd-nspawn تنها یکی از پیاده‌سازی‌های آن است. بیشتر دستورات موجود در machinectl می‌توانند بر روی کانتینرها یا ماشین‌های مجازی تحت کنترل سایر مدیران نیز استفاده شوند، نه فقط systemd-nspawn. راه‌اندازی ماشین‌های مجازی و ایمیج‌های کانتینر در آن مدیران نیازمند ابزارهای ویژه همان مدیر است.

برای راه‌اندازی تعاملی یک کانتینر در خط فرمان با دسترسی کامل به کنسول کانتینر، لطفاً systemd-nspawn را مستقیماً فراخوانی کنید. برای متوقف کردن یک کانتینر در حال اجرا از machinectl poweroff استفاده کنید.

افزوده شده در نگارش 219.

login [NAME]

باز کردن یک نشست ورود (login) به ترمینال تعاملی در یک کانتینر یا روی میزبان محلی. اگر آرگومانی ارائه شود، به ماشین کانتینری که باید به آن متصل شد اشاره دارد. اگر هیچ مقداری مشخص نشود، یا نام کانتینر به صورت رشته خالی مشخص گردد، یا نام ماشین ویژه ".host" (در ادامه را ببینید) مشخص شود، اتصال به جای آن با میزبان محلی برقرار می‌شود. این کار یک اتصال TTY به یک کانتینر خاص یا میزبان محلی ایجاد کرده و اجرای getty را روی آن درخواست می‌کند. توجه داشته باشید که این قابلیت تنها برای کانتینرهایی پشتیبانی می‌شود که systemd(1) را به عنوان سیستم init اجرا می‌کنند.

این دستور یک اعلان ورود (login prompt) کامل روی کانتینر یا میزبان محلی باز می‌کند که سپس نام کاربری و گذرواژه را می‌پرسد. از shell (در ادامه را ببینید) یا systemd-run(1) همراه با سوییچ --machine= برای فراخوانی مستقیم یک دستور منفرد، چه به صورت تعاملی و چه در پس‌زمینه استفاده کنید.

افزوده شده در نگارش 209.

shell [[NAME@]NAME [PATH [ARGUMENTS...]]]

باز کردن یک نشست پوسته (shell) تعاملی در یک کانتینر یا روی میزبان محلی. آرگومان نخست به ماشین کانتینری که باید به آن متصل شد اشاره دارد. اگر مقداری مشخص نشود، یا نام ماشین به صورت رشته خالی مشخص شود، یا نام ماشین ویژه ".host" (در ادامه را ببینید) مشخص گردد، اتصال به جای آن با میزبان محلی برقرار می‌شود. این دستور به شیوه‌ای مشابه با login عمل می‌کند، اما بلافاصله یک فرآیند کاربری را فراخوانی می‌نماید. این دستور فایل اجرایی مشخص‌شده را با آرگومان‌های داده‌شده اجرا می‌کند، یا اگر مشخص نشده باشد، پوسته پیش‌فرض کاربر را اجرا می‌نماید، یا اگر پوسته پیش‌فرضی یافت نشود، /bin/sh را اجرا می‌کند. با استفاده از --uid=، یا با افزودن نام کاربری و نویسه "@" به عنوان پیشوند به نام ماشین، می‌توان کاربر دیگری را انتخاب کرد. از --setenv= برای تنظیم متغیرهای محیطی برای فرآیند اجراشده استفاده کنید.

توجه داشته باشید که machinectl shell کد وضعیت/خروج فرآیند پوسته فراخوانی‌شده را بازنمی‌گرداند. در صورتی که به آن اطلاعات نیاز است، به جای آن از systemd-run استفاده کنید (در ادامه را ببینید).

استفاده از دستور shell بدون آرگومان (و در نتیجه فراخوانی پوسته یا دستور اجراشده روی میزبان محلی)، از بسیاری جهات مشابه یک نشست su(1) است، اما برخلاف su، نشست جدید را به طور کامل از نشست مبدأ ایزوله می‌کند، به گونه‌ای که هیچ ویژگی فرآیند یا نشستی را به اشتراک نمی‌گذارد و در وضعیتی پاک و به خوبی تعریف‌شده قرار دارد. این نشست در نشست‌های جدید utmp، ورود، حسابرسی (audit)، امنیت و دسته‌کلید (keyring) ردیابی می‌شود و در میان سایر ویژگی‌ها، هیچ متغیر محیطی یا محدودیت منابعی را به ارث نخواهد برد.

توجه داشته باشید که systemd-run(1) همراه با سوییچ --machine= می‌تواند به جای دستور machinectl shell استفاده شود و امکان کار غیرتعاملی، پیکربندی دقیق‌تر و سطح‌پایین‌تر واحد فراخوانی‌شده، و همچنین دسترسی به اطلاعات زمان اجرا و کد خروج/وضعیت فرآیند پوسته فراخوانی‌شده را فراهم می‌کند. به ویژه، از سوییچ --wait در systemd-run برای انتقال اطلاعات وضعیت خروج فرآیند فراخوانی‌شده استفاده کنید. از سوییچ --pty در systemd-run برای به دست آوردن یک پوسته تعاملی، مشابه با machinectl shell استفاده کنید. به طور کلی، systemd-run برای اهداف اسکریپت‌نویسی ترجیح داده می‌شود. با این حال، توجه داشته باشید که systemd-run ممکن است به امتیازات و دسترسی‌های بالاتری نسبت به machinectl shell نیاز داشته باشد.

افزوده شده در نگارش 225.

enable NAME..., disable NAME...

فعال یا غیرفعال کردن یک کانتینر به عنوان سرویس سیستمی برای راه‌اندازی هنگام بوت سیستم، با استفاده از systemd-nspawn(1). این کار systemd-nspawn@.service را برای نام ماشین مشخص‌شده فعال یا غیرفعال می‌کند، مشابه با اثر systemctl enable یا systemctl disable روی نام سرویس.

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

افزوده شده در نگارش 219.

poweroff NAME...

خاموش کردن یک یا چند ماشین. برای ماشین‌های مجازی مدیریت‌شده توسط systemd-vmspawn(1)، این دستور یک درخواست خاموش‌سازی ACPI را از طریق QMP ارسال می‌کند. برای کانتینرها، این دستور سیگنال SIGRTMIN+4 را به فرآیند init کانتینر ارسال می‌کند، که باعث می‌شود سیستم‌های init سازگار با systemd به طور پاکیزه خاموش شوند. این عملیات روی کانتینرهایی که سیستم init سازگار با systemd(1) را اجرا نمی‌کنند (مانند sysvinit)، کار نمی‌کند. از stop به عنوان نام مستعار برای poweroff استفاده کنید. از terminate (در ادامه را ببینید) برای خاتمه دادن فوری به یک ماشین بدون خاموش‌سازی پاکیزه آن استفاده کنید.

افزوده شده در نگارش 212.

reboot NAME...

راه‌اندازی مجدد (ری‌بوت) یک یا چند ماشین. برای ماشین‌های مجازی مدیریت‌شده توسط systemd-vmspawn(1)، این دستور یک درخواست بازنشانی سیستم را از طریق QMP ارسال می‌کند. برای کانتینرها، این دستور سیگنال SIGINT را به فرآیند init کانتینر ارسال می‌کند که تقریباً معادل فشردن Ctrl+Alt+Del در یک سیستم غیرکانتینری است و با کانتینرهایی که هر نوع مدیر سیستمی را اجرا می‌کنند سازگار است. از restart به عنوان نام مستعار برای reboot استفاده کنید.

افزوده شده در نگارش 209.

pause NAME...

متوقف کردن موقت (مکث) یک یا چند ماشین. برای ماشین‌های مجازی مدیریت‌شده توسط systemd-vmspawn(1)، این دستور اجرای vCPU را در سطح هایپروایزر منجمد می‌کند — به سیستم‌عامل مهمان اطلاعی داده نمی‌شود و تعلیق ACPI را مشاهده نمی‌کند. از دیدگاه مهمان، زمان به سادگی متوقف می‌شود تا زمانی که ماشین با resume از سر گرفته شود.

افزوده شده در نگارش 261.

resume NAME...

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

افزوده شده در نگارش 261.

terminate NAME...

بلافاصله یک ماشین مجازی یا کانتینر را بدون خاموش‌سازی پاکیزه خاتمه می‌دهد. این کار تمام فرآیندهای ماشین مجازی یا کانتینر را متوقف کرده (kill می‌کند) و تمام منابع متصل به آن نمونه را آزاد می‌سازد. از poweroff برای صدور درخواست خاموش‌سازی پاکیزه استفاده کنید.

افزوده شده در نگارش 206.

kill NAME...

ارسال یک سیگنال به یک یا چند فرآیند از ماشین مجازی یا کانتینر. این به معنای فرآیندها از دید میزبان است، نه فرآیندهای درون ماشین مجازی یا کانتینر. از --kill-whom= برای انتخاب اینکه کدام فرآیند کشته شود استفاده کنید. از --signal= برای انتخاب سیگنال ارسالی استفاده کنید.

افزوده شده در نگارش 206.

bind NAME PATH [PATH]

اتصال و سوار کردن پیوندی (bind mount) یک فایل یا دایرکتوری از میزبان به درون کانتینر مشخص‌شده. آرگومان مسیر اول، فایل یا دایرکتوری مبدأ روی میزبان است، و آرگومان مسیر دوم فایل یا دایرکتوری مقصد در کانتینر می‌باشد. هنگامی که دومی حذف شود، مسیر مقصد در کانتینر همان مسیر مبدأ روی میزبان خواهد بود. هنگامی که با سوییچ --read-only ترکیب شود، یک سوار کردن پیوندی فقط‌خواندنی ایجاد می‌شود. هنگامی که با سوییچ --mkdir ترکیب شود، مسیر مقصد ابتدا پیش از اعمال سوار کردن ایجاد می‌گردد. توجه داشته باشید که این گزینه در حال حاضر تنها برای کانتینرهای systemd-nspawn(1) پشتیبانی می‌شود، و تنها در صورتی که فضای نام کاربری (--private-users) استفاده نشده باشد. این دستور از سوار کردن پیوندی دایرکتوری‌ها، فایل‌های معمولی، گره‌های دستگاه (device nodes)، گره‌های سوکت AF_UNIX و همچنین FIFOها پشتیبانی می‌کند.

افزوده شده در نگارش 219.

bind-volume NAME SPEC

دریافت یک حجم ذخیره‌سازی از یک ارائه‌دهنده storagectl(1) و پیوست کردن آن به ماشین در حال اجرا. SPEC رشته‌ای به شکل "PROVIDER:VOLUME[:CONFIG][:K=V,...]" است که از نظر دستور زبان با آرگومان --bind-volume= در systemd-vmspawn(1) یکسان است.

حجم پیوست‌شده با نام "PROVIDER:VOLUME" شناسایی می‌شود و می‌تواند در زمان اجرا از طریق unbind-volume جدا شود. در حال حاضر تنها برای ماشین‌های systemd-vmspawn پشتیبانی می‌شود که یک سوکت کنترلی io.systemd.MachineInstance را ارائه می‌دهند.

افزوده شده در نگارش 261.

unbind-volume NAME STORAGE-NAME

جدا کردن یک حجم ذخیره‌سازی از ماشین در حال اجرا. STORAGE-NAME شناسه "PROVIDER:VOLUME" است که در زمان bind-volume مشخص شده بود. حجم‌هایی که در زمان راه‌اندازی ماشین پیوست شده بودند (به عنوان مثال از طریق --bind-volume= روی systemd-vmspawn(1)) نمی‌توانند جدا شوند و با خطای io.systemd.MachineInstance.StorageImmutable شکست خواهند خورد.

افزوده شده در نگارش 261.

copy-to NAME PATH [PATH] --force

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

اگر میزبان و کانتینر فضای نام کاربری و گروهی یکسانی داشته باشند، مالکیت فایل‌ها بر اساس شناسه عددی کاربر و شناسه گروه برای نسخه کپی حفظ می‌شود؛ در غیر این صورت، مالکیت تمام فایل‌ها و دایرکتوری‌ها در نسخه کپی متعلق به کاربر و گروه ریشه (UID/GID 0) خواهد بود.

افزوده شده در نگارش 219.

copy-from NAME PATH [PATH] --force

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

اگر میزبان و کانتینر فضای نام کاربری و گروهی یکسانی داشته باشند، مالکیت فایل‌ها بر اساس شناسه عددی کاربر و شناسه گروه برای نسخه کپی حفظ می‌شود؛ در غیر این صورت، مالکیت تمام فایل‌ها و دایرکتوری‌ها در نسخه کپی متعلق به کاربر و گروه ریشه (UID/GID 0) خواهد بود.

افزوده شده در نگارش 219.

list-images

نمایش فهرستی از ایمیج‌های کانتینر و ماشین مجازی محلی نصب‌شده. این دستور تمام ایمیج‌های دیسک خام و دایرکتوری‌ها و زیرحجم‌های کانتینر را در /var/lib/machines/ (و سایر مسیرهای جستجو، در ادامه را ببینید) برمی‌شمارد. از start (در بالا را ببینید) برای اجرای یک کانتینر از روی یکی از ایمیج‌های فهرست‌شده استفاده کنید. توجه داشته باشید که به طور پیش‌فرض، کانتینرهایی که نام آن‌ها با نقطه (".") شروع می‌شود نمایش داده نمی‌شوند. برای نمایش این موارد نیز، --all را مشخص کنید. توجه داشته باشید که یک ایمیج ویژه ".host" همیشه به طور ضمنی وجود دارد و به ایمیجی اشاره دارد که خود میزبان از روی آن بوت شده است.

افزوده شده در نگارش 219.

image-status [NAME...]

نمایش اطلاعات خلاصه وضعیت درباره یک یا چند ایمیج کانتینر یا ماشین مجازی. این تابع برای تولید خروجی خوانا برای انسان در نظر گرفته شده است. به جای آن از show-image (در ادامه را ببینید) برای تولید خروجی قابل تجزیه توسط رایانه استفاده کنید.

افزوده شده در نگارش 219.

show-image [NAME...]

نمایش ویژگی‌های یک یا چند ایمیج ماشین مجازی یا کانتینر ثبت‌شده، یا خود مدیر. اگر آرگومانی مشخص نشود، ویژگی‌های مدیر نمایش داده می‌شود. اگر یک NAME مشخص شود، ویژگی‌های این ایمیج ماشین مجازی یا کانتینر نمایش داده می‌شود. به طور پیش‌فرض، ویژگی‌های خالی پنهان می‌شوند. از --all برای نمایش آن‌ها نیز استفاده کنید. برای انتخاب ویژگی‌های خاص جهت نمایش، از --property= استفاده کنید. این دستور برای زمان‌هایی در نظر گرفته شده که خروجی قابل تجزیه توسط رایانه مورد نیاز است. اگر به دنبال خروجی قالب‌بندی‌شده و خوانا برای انسان هستید از image-status استفاده کنید.

افزوده شده در نگارش 219.

edit NAME|FILE

ویرایش فایل تنظیمات ماشین‌های مشخص‌شده. برای اطلاع از ساختار و قالب فایل تنظیمات، به systemd.nspawn(5) مراجعه کنید. اگر فایل تنظیمات موجود برای ماشین داده‌شده یافت نشود، edit به طور خودکار یک فایل تنظیمات جدید را از ابتدا در مسیر /etc/systemd/nspawn/ ایجاد می‌کند.

افزوده شده در نگارش 254.

cat NAME|FILE

نمایش فایل تنظیمات ماشین‌های مشخص‌شده.

افزوده شده در نگارش 254.

clone NAME NAME

شبیه‌سازی (کلون کردن) یک ایمیج کانتینر یا ماشین مجازی. آرگومان‌ها نام ایمیج مبدأ برای کلون شدن و نام ایمیج تازه کلون‌شده را مشخص می‌کنند. توجه داشته باشید که ایمیج‌های کانتینر دایرکتوری معمولی با این دستور به ایمیج‌های زیرحجم btrfs کلون می‌شوند، البته در صورتی که فایل‌سیستم زیربنایی از این قابلیت پشتیبانی کند. توجه داشته باشید که کلون کردن یک ایمیج کانتینر یا ماشین مجازی برای فایل‌سیستم‌هایی که از کپی‌هنگام‌نوشتن (copy-on-write) پشتیبانی می‌کنند بهینه‌سازی شده است، و ممکن است روی سایر فایل‌سیستم‌ها به دلیل محدودیت‌های آن‌ها چندان کارآمد نباشد.

توجه داشته باشید که این دستور نام میزبان، شناسه ماشین (machine ID) و تمام تنظیمات دیگری را که می‌توانند نمونه را شناسایی کنند دست‌نخورده باقی می‌گذارد. بنابراین ایمیج اصلی و نسخه کلون‌شده این اطلاعات هویتی را به اشتراک خواهند داشت و ممکن است لازم باشد آن‌ها را به صورت دستی در نسخه کپی تغییر دهید.

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

افزوده شده در نگارش 219.

rename NAME NAME

تغییر نام یک ایمیج کانتینر یا ماشین مجازی. آرگومان‌ها نام ایمیج فعلی برای تغییر نام و نام جدید ایمیج را مشخص می‌کنند.

افزوده شده در نگارش 219.

read-only NAME [BOOL]

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

افزوده شده در نگارش 219.

remove NAME...

حذف یک یا چند ایمیج کانتینر یا ماشین مجازی. ایمیج ویژه ".host" که به درخت دایرکتوری خود میزبان اشاره دارد، قابل حذف نیست.

افزوده شده در نگارش 219.

set-limit [NAME] BYTES

تنظیم حداکثر اندازه به بایت که یک ایمیج کانتینر یا ماشین مجازی خاص، یا همه ایمیج‌ها می‌توانند روی دیسک رشد کنند (سهمیه دیسک یا disk quota). یک یا دو پارامتر دریافت می‌کند. پارامتر اول و اختیاری به نام ایمیج کانتینر یا ماشین مجازی اشاره دارد. در صورت مشخص شدن، محدودیت اندازه ایمیج مشخص‌شده تغییر می‌کند. در صورت حذف، محدودیت اندازه کلی مجموع تمام ایمیج‌های ذخیره‌شده به صورت محلی تغییر می‌کند. آرگومان نهایی محدودیت اندازه را به بایت مشخص می‌کند که می‌تواند با پسوندهای رایج واحدهای K، M، G، T همراه باشد. اگر قرار است محدودیت اندازه غیرفعال شود، "-" را به عنوان اندازه مشخص کنید.

توجه داشته باشید که محدودیت اندازه به ازای هر کانتینر تنها روی فایل‌سیستم‌های btrfs پشتیبانی می‌شود.

افزوده شده در نگارش 220.

clean

حذف ایمیج‌های پنهان ماشین مجازی یا کانتینر (یا همه آن‌ها). این دستور تمام ایمیج‌های پنهان ماشین را از /var/lib/machines/ حذف می‌کند، یعنی مواردی که نام آن‌ها با نقطه شروع می‌شود. از machinectl list-images --all برای دیدن فهرستی از تمام ایمیج‌های ماشین، از جمله موارد پنهان استفاده کنید.

هنگامی که با سوییچ --all ترکیب شود، تمام ایمیج‌ها را حذف می‌کند، نه فقط موارد پنهان را. این دستور در عمل دایرکتوری /var/lib/machines/ را خالی می‌سازد.

توجه داشته باشید که دستوراتی مانند importctl pull-tar یا importctl pull-raw معمولاً ابتدا ایمیج‌های ماشینی پنهان، فقط‌خواندنی و تغییرنیافته را از ایمیج دانلودشده ایجاد می‌کنند، پیش از آنکه یک نسخه کاری قابل نوشتن از آن را کلون کنند، تا در صورت استفاده چندباره از ایمیج‌ها از دانلودهای تکراری جلوگیری شود. از machinectl clean برای حذف ایمیج‌های قدیمی و پنهان ایجادشده به این روش استفاده کنید.

افزوده شده در نگارش 230.

گزینه‌های زیر پشتیبانی می‌شوند:

-p, --property=

هنگام نمایش ویژگی‌های ماشین یا ایمیج، خروجی را به ویژگی‌های خاصی که توسط آرگومان مشخص شده‌اند محدود می‌کند. در صورت عدم تعیین، تمام ویژگی‌های تنظیم‌شده نمایش داده می‌شوند. آرگومان باید نام یک ویژگی باشد، مانند "Name". اگر بیش از یک بار مشخص شود، تمام ویژگی‌های دارای نام‌های مشخص‌شده نمایش داده می‌شوند.

افزوده شده در نگارش 206.

--value

هنگام چاپ ویژگی‌ها با show، تنها مقدار را چاپ کرده و از نام ویژگی و "=" صرف‌نظر می‌کند.

افزوده شده در نگارش 230.

-P

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

افزوده شده در نگارش 256.

-a, --all

هنگام نمایش ویژگی‌های ماشین یا ایمیج، تمام ویژگی‌ها را صرف‌نظر از تنظیم بودن یا نبودن آن‌ها نمایش می‌دهد.

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

هنگام پاک‌سازی ایمیج‌های ماشین مجازی یا کانتینر، همه ایمیج‌ها را حذف می‌کند، نه فقط موارد پنهان را.

افزوده شده در نگارش 206.

-l, --full

از کوتاه کردن ورودی‌های درخت فرآیند یا جدول خودداری می‌کند. این گزینه متضمن --max-addresses=full است.

افزوده شده در نگارش 206.

--kill-whom=

هنگام استفاده با kill، فرآیندهایی را که باید کشته شوند انتخاب می‌کند. باید یکی از مقادیر leader، supervisor، یا all باشد تا انتخاب کند که تنها فرآیند لیدر (leader) ماشین، فرآیند ناظر (supervisor) ماشین، یا تمام فرآیندهای ماشین کشته شوند. در صورت حذف، مقدار پیش‌فرض all خواهد بود.

افزوده شده در نگارش 206.

-s, --signal=

هنگام استفاده با kill، سیگنالی را که باید به فرآیندهای انتخاب‌شده ارسال شود تعیین می‌کند. باید یکی از مشخص‌کننده‌های سیگنال شناخته‌شده مانند SIGTERM، SIGINT یا SIGSTOP باشد. در صورت حذف، مقدار پیش‌فرض SIGTERM خواهد بود.

مقدار ویژه "help" فهرستی از مقادیر شناخته‌شده را نمایش داده و برنامه بلافاصله خارج می‌شود، و مقدار ویژه "list" مقادیر شناخته‌شده را همراه با شماره‌های عددی سیگنال فهرست کرده و برنامه بلافاصله خارج می‌شود.

--uid=

هنگام استفاده با دستور shell، شناسه کاربری (UID) را برای باز کردن نشست پوسته تعاملی انتخاب می‌کند. اگر آرگومان دستور shell یک نام کاربری را نیز مشخص کرده باشد، این گزینه نادیده گرفته می‌شود. اگر نام به هیچ‌یک از این دو روش مشخص نشود، "root" به طور پیش‌فرض استفاده خواهد شد. توجه داشته باشید که این سوییچ برای دستور login (در ادامه را ببینید) پشتیبانی نمی‌شود.

افزوده شده در نگارش 225.

-E NAME[=VALUE], --setenv=NAME[=VALUE]

هنگام استفاده با دستور shell، یک متغیر محیطی را برای پوسته اجراشده تنظیم می‌کند. این گزینه می‌تواند بیش از یک بار برای تنظیم چندین متغیر استفاده شود. هنگامی که "=" و VALUE حذف شوند، مقدار متغیر با همان نام در محیط برنامه استفاده خواهد شد.

توجه داشته باشید که این گزینه برای دستور login پشتیبانی نمی‌شود.

افزوده شده در نگارش 230.

--mkdir

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

افزوده شده در نگارش 219.

--read-only

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

هنگام استفاده با clone یک ایمیج کانتینر یا ماشین مجازی فقط‌خواندنی ایجاد می‌شود.

افزوده شده در نگارش 219.

-n, --lines=

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

افزوده شده در نگارش 219.

-o, --output=

هنگام استفاده با status، قالب‌بندی ورودی‌های ژورنال نمایش‌داده‌شده را کنترل می‌کند. برای گزینه‌های موجود، به journalctl(1) مراجعه کنید. پیش‌فرض "short" است.

افزوده شده در نگارش 219.

--runner=nspawn|vmspawn

هنگام کار روی ماشین‌ها، انتخاب می‌کند که از systemd-nspawn(1) یا systemd-vmspawn(1) استفاده شود. به طور پیش‌فرض از systemd-nspawn(1) استفاده می‌شود.

افزوده شده در نگارش 256.

-V

-V یک میان‌بر برای --runner=vmspawn است.

افزوده شده در نگارش 256.

--now

هنگام استفاده با enable یا disable، کانتینرها همچنین راه‌اندازی یا خاموش خواهند شد. عملیات start یا poweroff تنها زمانی انجام می‌شود که عملیات enable یا disable مربوطه موفقیت‌آمیز بوده باشد.

افزوده شده در نگارش 253.

--force

جایگزینی فایل مقصد هنگام رونوشت‌برداری از فایل‌ها.

افزوده شده در نگارش 219.

--max-addresses=

هنگام استفاده با دستور list-machines، تعداد آدرس‌های IP نمایش‌داده‌شده برای هر ماشین را محدود می‌کند. پیش‌فرض 1 است. تمام آدرس‌ها را می‌توان با "all" درخواست کرد. اگر محدودیت 0 باشد، ستون آدرس نمایش داده نمی‌شود. در غیر این صورت، اگر ماشین آدرس‌های بیشتری نسبت به مقدار نمایش‌داده‌شده داشته باشد، "..." به دنبال آخرین آدرس می‌آید.

افزوده شده در نگارش 232.

-q, --quiet

سرکوب خروجی‌های اطلاعاتی اضافی هنگام اجرا.

افزوده شده در نگارش 236.

-H, --host=

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

-M, --machine=

اتصال به systemd-machined.service(8) در حال اجرا در یک کانتینر محلی، جهت انجام عملیات مشخص‌شده در درون کانتینر.

افزوده شده در نگارش 235.

--no-pager

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

--no-legend

راهنما (legend)، یعنی سرستون‌های جدول و پاورقی حاوی نکات را چاپ نمی‌کند.

--no-ask-password

برای عملیات نیازمند دسترسی ویژه از کاربر درخواست احراز هویت نمی‌کند.

-h, --help

نمایش یک متن کوتاه راهنما و خروج.

--version

نمایش یک رشته کوتاه نگارش و خروج.

ابزار machinectl روی ماشین‌ها و ایمیج‌هایی کار می‌کند که نام‌های آن‌ها باید بر اساس قوانین سخت‌گیرانه‌ای انتخاب شوند. نام‌های ماشین باید برای استفاده به عنوان نام‌های میزبان بر اساس زیرمجموعه محافظه‌کارانه‌ای از مفاهیم DNS و یونیکس/لینوکس مناسب باشند. به طور خاص، آن‌ها باید از یک یا چند رشته برچسب غیرخالی تشکیل شده باشند که با نقطه از یکدیگر جدا می‌شوند. نقطه‌های ابتدایی یا انتهایی مجاز نیستند. توالی چند نقطه مجاز نیست. رشته‌های برچسب تنها می‌توانند شامل نویسه‌های الفبایی-عددی و همچنین خط تیره باشند. حداکثر طول نام ماشین 64 نویسه است.

یک ماشین ویژه با نام ".host" به خود سیستم میزبان در حال اجرا اشاره دارد. این برای اجرای عملیات یا بازرسی خود سیستم میزبان نیز مفید است. توجه داشته باشید که machinectl list این ماشین ویژه را نمایش نخواهد داد مگر اینکه سوییچ --all مشخص شده باشد.

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

یک ایمیج ویژه با نام ".host" به ایمیج سیستم میزبان در حال اجرا اشاره دارد. بنابراین از نظر مفهومی به نام ماشین ویژه ".host" توصیف‌شده در بالا نگاشت می‌شود. توجه داشته باشید که machinectl list-images نیز این ایمیج ویژه را نمایش نخواهد داد، مگر اینکه --all مشخص شده باشد.

ایمیج‌های ماشین ترجیحاً در /var/lib/machines/ ذخیره می‌شوند، اما در /usr/local/lib/machines/ و /usr/lib/machines/ نیز جستجو می‌شوند. به دلایل سازگاری، دایرکتوری /var/lib/container/ نیز جستجو می‌شود. توجه داشته باشید که ایمیج‌های ذخیره‌شده در زیر /usr/ همواره فقط‌خواندنی در نظر گرفته می‌شوند. امکان پیوند نمادین (symlink) دادن ایمیج‌های ماشین از سایر دایرکتوری‌ها به درون /var/lib/machines/ وجود دارد تا برای کنترل با machinectl در دسترس قرار گیرند.

توجه داشته باشید که برخی از عملیات‌های ایمیج تنها بر روی فایل‌سیستم‌های btrfs پشتیبانی می‌شوند، کارآمد هستند یا به صورت اتمیک (اتمام‌پذیر و یکپارچه) انجام می‌پذیرند.

ایمیج‌های دیسک توسط systemd-nspawn(1) و machinectl در سه قالب شناخته می‌شوند:

•یک درخت دایرکتوری ساده، حاوی فایل‌ها و دایرکتوری‌های کانتینری که باید بوت شود.
•زیرحجم‌ها (روی فایل‌سیستم‌های btrfs)، که مشابه با دایرکتوری‌های ساده توصیف‌شده در بالا هستند. با این حال، آن‌ها مزایای اضافی مانند کلون کردن کارآمد و گزارش سهمیه دارند.
•ایمیج‌های دیسک خام ("Raw")، یعنی ایمیج‌های دودویی از دیسک‌ها با جدول پارتیشن GPT یا MBR. ایمیج‌های این نوع، فایل‌های معمولی با پسوند ".raw" هستند.

برای اطلاعات بیشتر در مورد قالب‌های ایمیج، به ویژه گزینه‌های --directory= و --image= آن به systemd-nspawn(1) مراجعه کنید.

مثال 1. دانلود یک ایمیج خام RAW از اوبونتو، تنظیم گذرواژه ریشه در آن، و راه‌اندازی آن به عنوان یک سرویس

# importctl pull-raw -mN \
      https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-disk-kvm.img \
      jammy
# systemd-firstboot --image=/var/lib/machines/jammy.raw --prompt-root-password --force
# machinectl start jammy
# machinectl login jammy

این دستور ایمیج مشخص‌شده .raw را دانلود کرده و آن را تحت نام محلی "jammy" در دسترس قرار می‌دهد. سپس، یک گذرواژه ریشه با systemd-firstboot(1) تنظیم می‌شود. پس از آن، ماشین به عنوان یک سرویس سیستمی راه‌اندازی می‌شود. با دستور آخر یک اعلان ورود به درون کانتینر درخواست می‌گردد.

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

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

$SYSTEMD_LOG_COLOR

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

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

$SYSTEMD_LOG_TIME

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

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

$SYSTEMD_LOG_LOCATION

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

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

$SYSTEMD_LOG_TID

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

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

$SYSTEMD_LOG_TARGET

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

$SYSTEMD_LOG_RATELIMIT_KMSG

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

$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)، صفحه‌بند به یک مرز امنیتی تبدیل می‌شود. باید دقت شود که تنها برنامه‌هایی با عملکرد کاملاً محدود به عنوان صفحه‌بند استفاده شوند، و ویژگی‌های تعاملی ناخواسته مانند باز کردن یا ایجاد فایل‌های جدید یا راه‌اندازی فرآیندهای فرزند مجاز نباشند. «حالت امن» (secure mode) برای صفحه‌بند ممکن است به شرح زیر فعال شود، اگر صفحه‌بند از آن پشتیبانی کند (بیشتر صفحه‌بندها به گونه‌ای نوشته نشده‌اند که این موضوع را در نظر بگیرند). توصیه می‌شود هنگام اجازه دادن به کاربران غیرقابل اعتماد برای اجرای دستورات با دسترسی‌های ارتقایافته، یا «حالت امن» را صراحتاً فعال کنید یا صفحه‌بند را با استفاده از --no-pager یا PAGER=cat به طور کامل غیرفعال نمایید.

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

هنگامی که روی نادرست تنظیم شود، هیچ محدودیتی برای صفحه‌بند اعمال نمی‌شود. تنظیم SYSTEMD_PAGERSECURE=0 یا حذف نکردن آن از محیط به ارث رسیده ممکن است به کاربر اجازه دهد دستورات دلخواه را اجرا کند.

هنگامی که $SYSTEMD_PAGERSECURE تنظیم نشده باشد، ابزارهای systemd سعی می‌کنند به طور خودکار تشخیص دهند که آیا "حالت امن" باید فعال شود و آیا صفحه‌بند از آن پشتیبانی می‌کند یا خیر. اگر UID موثر همان مالک نشست ورود نباشد (به geteuid(2) و sd_pid_get_owner_uid(3) مراجعه کنید)، یا هنگام اجرا تحت sudo(8) یا ابزارهای مشابه ($SUDO_UID تنظیم شده باشد [1])، "حالت امن" فعال می‌شود. در این موارد، SYSTEMD_PAGERSECURE=1 تنظیم خواهد شد و صفحه‌بندهایی که مشخص نیست "حالت امن" را پیاده‌سازی می‌کنند اصلاً استفاده نخواهند شد. توجه داشته باشید که این تشخیص خودکار تنها رایج‌ترین مکانیسم‌های ارتقای دسترسی را پوشش می‌دهد و به عنوان یک تسهیل در نظر گرفته شده است. توصیه می‌شود صراحتاً $SYSTEMD_PAGERSECURE را تنظیم کرده یا صفحه‌بند را غیرفعال کنید.

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

$SYSTEMD_COLORS

یک آرگومان بولی، یا یک مقدار ویژه می‌گیرد. به طور پیش‌فرض (تنظیم‌نشده)، systemd و ابزارهای مرتبط در صورت امکان از رنگ‌ها در خروجی خود استفاده خواهند کرد. اگر $COLORTERM روی "truecolor" یا "24bit" تنظیم شده باشد، رنگ‌های 24 بیتی فعال خواهند شد، در غیر این صورت 256 رنگ، مگر اینکه $NO_COLOR یا $TERM نشان دهد که رنگ‌ها غیرفعال هستند.

true

مشابه حالت تنظیم‌نشده، با این تفاوت که $NO_COLOR نادیده گرفته می‌شود.

false

خروجی تک‌رنگ (سیاه و سفید) خواهد بود.

"16", "256", "24bit"

به ترتیب همیشه از رنگ‌های پایه‌ای 16 رنگ ANSI، 256 رنگ یا رنگ 24 بیتی استفاده می‌کند.

"auto-16", "auto-256", "auto-24bit"

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

$SYSTEMD_URLIFY

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

systemd(1), systemd-machined.service(8), systemd-nspawn(1), systemd.special(7), importctl(1), tar(1), xz(1), gzip(1), bzip2(1), zstd(1)

1.
توصیه می‌شود که سایر ابزارها $SUDO_UID را در صورت لزوم تنظیم و بررسی کنند، و با آن به عنوان یک رابط مشترک رفتار نمایند.
systemd 261.2