PORTABLECTL(1) portablectl PORTABLECTL(1)

portablectl - متصل کردن، جدا کردن یا بازرسی سرویسهای قابلحمل (Portable Services)

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

portablectl می‌تواند برای متصل کردن، جدا کردن یا بازرسی ایمیج‌های سرویس قابل‌حمل استفاده شود. این ابزار اساساً دستوری برای تعامل با systemd-portabled.service(8) است.

ایمیج‌های سرویس قابل‌حمل حاوی یک درخت سیستم‌فایل سیستم‌عامل به همراه اطلاعات فایل واحد systemd(1) هستند. یک ایمیج سرویس می‌تواند به سیستم محلی «متصل» (attach) شود. در صورت اتصال، مجموعه‌ای از فایل‌های واحد از ایمیج به میزبان کپی می‌شوند، و با تخصیص‌های RootDirectory= یا RootImage= (در مورد واحدهای سرویس) که به فایل یا دایرکتوری ایمیج اشاره دارند گسترش می‌یابند، تا اطمینان حاصل شود که سرویس‌ها در بستر سیستم‌فایل ایمیج اجرا خواهند شد.

ایمیج‌های سرویس قابل‌حمل روشی کارآمد برای بسته‌بندی چندین سرویس مرتبط و سایر واحدها در کنار یکدیگر و انتقال یکپارچه آن‌ها بین سیستم‌ها هستند. هنگامی که این ایمیج‌ها به سیستم محلی متصل می‌شوند، واحدهای موجود در آن‌ها در بیشتر موارد مانند واحدهای معمولی ارائه‌شده توسط سیستم، یا با امتیازات کامل یا درون ایزوله‌سازی دقیق (سندباکس)، بسته به پیکربندی انتخاب‌شده، اجرا می‌شوند. برای جزئیات بیشتر، ببینید: Portable Services[1].

ایمیج‌های سرویس قابل‌حمل ممکن است از انواع زیر باشند:

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

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

list

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

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

attach IMAGE [PREFIX...]

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

هنگامی که یک سرویس قابل‌حمل متصل می‌شود، چهار عملیات اجرا می‌گردد:

1.تمام فایل‌های واحد از انواع .service، .socket، .target، .timer و .path که با پیشوند نام فایل واحد مشخص‌شده مطابقت دارند، از ایمیج به دایرکتوری /etc/systemd/system.attached/ میزبان کپی می‌شوند (یا /run/systemd/system.attached/ — بسته به اینکه آیا --runtime مشخص شده باشد یا خیر، به زیر مراجعه کنید)، که در مسیر جستجوی پیش‌ساخته واحد در مدیر سرویس سیستم گنجانده شده است.
2.برای فایل‌های واحد از نوع .service یک دراپ‌این (drop-in) به این نسخه‌های کپی‌شده اضافه می‌شود که تنظیمات RootDirectory= یا RootImage= را اضافه می‌کند (برای جزئیات به systemd.unit(5) مراجعه کنید)، تا اطمینان حاصل شود که این سرویس‌ها در بستر سیستم‌فایل ایمیج سرویس قابل‌حمل مبدأ اجرا می‌شوند.
3.یک دراپ‌این دوم ایجاد می‌شود: دراپ‌این "profile"، که ممکن است شامل تنظیمات امنیتی اضافی (و سایر تنظیمات) باشد. به‌طور پیش‌فرض چند پروفایل در دسترس است، اما مدیران سیستم می‌توانند پروفایل‌های دلخواه خود را نیز تعریف کنند. به بخش زیر مراجعه کنید.
4.اگر فایل ایمیج سرویس قابل‌حمل از قبل در مسیر جستجو نباشد (به زیر مراجعه کنید)، یک پیوند نمادین (symlink) به آن در /etc/portables/ یا /run/portables/ ایجاد می‌شود تا اطمینان حاصل گردد که در مسیر جستجو گنجانده شده است.

به‌طور پیش‌فرض، تمام فایل‌های واحدی که نام آن‌ها با پیشوندی برگرفته از نام فایل ایمیج آغاز می‌شود، به بیرون کپی می‌شوند. به‌طور خاص، پیشوند از نام فایل ایمیج با حذف هرگونه پسوند مانند .raw تعیین شده و در صورت وجود نویسه خط زیرین ("_")، در اولین وقوع آن کوتاه می‌شود. منطق خط زیرین برای نسخه‌بندی در نظر گرفته شده است، به طوری که یک فایل ایمیج مانند foobar_47.11.raw منجر به پیشوند تطبیق فایل واحد foobar خواهد شد. سپس این پیشوند با نام تمام فایل‌های واحد موجود در دایرکتوری‌های معمول ایمیج مقایسه می‌شود، اما تنها نام‌های فایل واحدی که در آن‌ها پس از پیشوند نویسه‌های "-"، "." یا "@" قرار گرفته باشد در نظر گرفته می‌شوند. مثال: اگر نام یک فایل ایمیج سرویس قابل‌حمل foobar_47.11.raw باشد، آنگاه به‌طور پیش‌فرض تمام فایل‌های واحد آن با نام‌هایی نظیر foobar-quux-waldi.service، foobar.service یا foobar@.service در نظر گرفته خواهند شد. امکان بازنویسی پیشوند تطبیق وجود دارد: تمام رشته‌های ذکرشده در خط فرمان پس از نام فایل ایمیج به عنوان پیشوند در نظر گرفته می‌شوند، و بر منطق ضمنی مشتق شدن پیشوند از نام فایل ایمیج ارجحیت می‌یابند.

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

اگر --now و/یا --enable ارسال شوند، سرویس‌های قابل‌حمل بلافاصله پس از متصل کردن ایمیج راه‌اندازی (عملیات مسدودکننده، مگر اینکه --no-block ارسال شده باشد) و/یا فعال می‌شوند.

هنگام اتصال ایمیج‌ها، یک خط‌مشی ایمیج (image policy) ایجاد می‌شود که ایمیج متصل‌شده را دقیقاً بر اساس محتوایی که هنگام اتصال یافت شده سنجاق (pin) می‌کند، تا نتوان آن را با تنزل امنیت (مانند حذف محافظت dm-verity) بدون نصب مجدد کامل جایگزین کرد. برای جزئیات بیشتر در مورد خط‌مشی‌ها، به systemd.image-policy(7) مراجعه کنید.

به جای مسیر ایمیج، می‌توان یک دایرکتوری دارای نسخه ".v/" را مشخص کرد، برای جزئیات به systemd.v(7) مراجعه کنید.

به جای مسیر دایرکتوری، می‌توان یک دایرکتوری دارای نسخه ".v/" را مشخص کرد، برای جزئیات به systemd.v(7) مراجعه کنید.

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

detach IMAGE [PREFIX...]

جدا کردن یک ایمیج سرویس قابل‌حمل از سیستم میزبان. این دستور عملیات اجراشده توسط دستور attach در بالا را بازگردانی کرده و نسخه‌های کپی‌شده فایل واحد، دراپ‌این‌ها و پیوند نمادین ایمیج را مجدداً حذف می‌کند. این دستور یک نام یا مسیر ایمیج را به عنوان پارامتر می‌پذیرد. توجه داشته باشید که اگر یک مسیر مشخص شود، تنها آخرین بخش آن (یعنی نام فایل یا دایرکتوری، نه مسیر منتهی به آن) برای یافتن فایل‌های واحد منطبق استفاده می‌شود. این ویژگی برای راحتی در نظر گرفته شده است تا تمام آرگومان‌های ارسال‌شده به attach بتوانند عیناً به detach نیز ارسال شوند.

اگر --now و/یا --enable ارسال شوند، سرویس‌های قابل‌حمل بلافاصله قبل از جدا کردن ایمیج متوقف می‌شوند (عملیات مسدودکننده) و/یا غیرفعال می‌گردند. پیشوند(ها) نیز پذیرفته می‌شوند، تا در صورتی که نام واحدها با نام ایمیج مطابق آنچه در attach توصیف شد یکسان نباشد، مورد استفاده قرار گیرند.

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

reattach IMAGE [PREFIX...]

یک ایمیج سرویس قابل‌حمل موجود را از میزبان جدا کرده و بلافاصله مجدداً آن را متصل می‌کند. این دستور در صورت جایگزین شدن ایمیج کاربرد دارد. واحدهای در حال اجرا در طول این فرآیند متوقف نمی‌شوند. تطبیق جزئی، برای پشتیبانی از نسخه‌های مختلف در نام ایمیج، مجاز است: تنها بخش قبل از اولین نویسه "_" باید یکسان باشد. اگر ایمیج جدید وجود نداشته باشد، ایمیج موجود جدا نخواهد شد. پارامترها از همان نحو دستور attach پیروی می‌کنند.

اگر --now و/یا --enable ارسال شوند، سرویس‌های قابل‌حمل در صورت حذف شدن بلافاصله متوقف می‌شوند، در صورت اضافه شدن راه‌اندازی و/یا فعال می‌گردند، و در صورت به‌روزرسانی مجدداً راه‌اندازی می‌شوند. پیشوندها نیز به همان شیوه‌ای که در attach شرح داده شد پذیرفته می‌شوند.

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

inspect IMAGE [PREFIX...]

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

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

is-attached IMAGE

تعیین می‌کند که آیا ایمیج مشخص‌شده در حال حاضر متصل است یا خیر. مگر اینکه با سوییچ --quiet ترکیب شود، یک شناسه وضعیت کوتاه برای ایمیج نمایش می‌دهد. به‌طور خاص:

جدول ۱. وضعیت‌های اتصال ایمیج

وضعیت توضیحات
detached ایمیج در حال حاضر متصل نیست.
attached ایمیج در حال حاضر متصل است، یعنی فایل‌های واحد آن در دسترس سیستم میزبان قرار گرفته‌اند.
attached-runtime مانند attached، اما فایل‌های واحد تنها به‌صورت گذرا در دسترس قرار گرفته‌اند، یعنی دستور attach با گزینه --runtime فراخوانی شده است.
enabled ایمیج در حال حاضر متصل است، و دست‌کم یکی از فایل‌های واحد مرتبط با آن فعال شده است.
enabled-runtime مانند enabled، اما فایل‌های واحد تنها به‌صورت گذرا در دسترس قرار گرفته‌اند، یعنی دستور attach با گزینه --runtime فراخوانی شده است.
running ایمیج در حال حاضر متصل است، و دست‌کم یکی از فایل‌های واحد مرتبط با آن در حال اجرا است.
running-runtime ایمیج در حال حاضر به‌صورت گذرا متصل است، و دست‌کم یکی از فایل‌های واحد مرتبط با آن در حال اجرا است.

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

read-only IMAGE [BOOL]

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

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

remove IMAGE...

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

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

set-limit [IMAGE] BYTES

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

توجه داشته باشید که محدودیت‌های اندازه به ازای هر ایمیج تنها روی سیستم‌فایل‌های btrfs پشتیبانی می‌شوند. همچنین، بسته به تنظیمات BindPaths= در فایل‌های واحد سرویس قابل‌حمل، دایرکتوری‌هایی از میزبان ممکن است در طول زمان اجرا در محیط ایمیج قابل مشاهده باشند که تحت تأثیر این تنظیم قرار نمی‌گیرند، زیرا فقط خود ایمیج در این محدودیت محاسبه می‌شود.

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

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

-q, --quiet

از چاپ خروجی‌های اطلاعاتی اضافی در حین اجرا جلوگیری می‌کند.

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

-p PROFILE, --profile=PROFILE

هنگام متصل کردن ایمیج، پروفایل مورد استفاده را انتخاب می‌کند. به‌طور پیش‌فرض، از پروفایل "default" استفاده می‌شود. برای جزئیات بیشتر در مورد پروفایل‌ها، به بخش زیر مراجعه کنید.

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

--copy=

هنگام متصل کردن یک ایمیج، اولویت بین کپی کردن یا ایجاد پیوند نمادین فایل‌های نصب‌شده در سیستم میزبان را انتخاب می‌کند. یکی از مقادیر زیر را می‌پذیرد: "copy" (فایل‌ها کپی خواهند شد)، "symlink" (برای ترجیح دادن ایجاد پیوندهای نمادین)، "auto" برای یک حالت میانی که در آن دراپ‌این‌های پروفایل امنیتی و ایمیج‌ها پیوند نمادین می‌شوند در حالی که فایل‌های واحد کپی می‌شوند، یا "mixed" (از نسخه v256 به بعد) که در آن دراپ‌این‌های پروفایل امنیتی پیوند نمادین می‌شوند در حالی که فایل‌های واحد و ایمیج‌ها کپی می‌شوند. توجه داشته باشید که این گزینه تنها بیانگر یک اولویت است؛ در مواردی که پیوندهای نمادین قابل ایجاد نباشند — به عنوان مثال زمانی که ایمیج مورد نظر یک ایمیج دیسک خام باشد و بنابراین مستقیماً از سیستم‌فایل میزبان قابل ارجاع نباشد — کپی کردن فایل‌ها بدون قید و شرط استفاده می‌شود.

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

--runtime

هنگام مشخص شدن، فایل‌های واحد و دراپ‌این به جای /etc/systemd/system.attached/ در /run/systemd/system.attached/ قرار می‌گیرند. بنابراین، ایمیج‌های متصل‌شده با فعال بودن این گزینه، تنها تا راه‌اندازی مجدد بعدی متصل باقی می‌مانند، در حالی که معمولاً به‌صورت ماندگار متصل می‌شوند.

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

--no-reload

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

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

--cat

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

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

--enable

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

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

--now

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

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

--no-block

برای تکمیل attach --now منتظر نمی‌ماند و مسدود نمی‌شود.

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

--clean

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

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

--extension=PATH

یک ایمیج اضافی PATH را هنگام متصل کردن/جدا کردن به عنوان یک لایه روی IMAGE اضافه می‌کند. این آرگومان را می‌توان چندین بار مشخص کرد، که در این حالت ترتیب قرارگیری لایه‌های ایمیج‌ها از قواعد مشخص‌شده در systemd.exec(5) برای دستورالعمل ExtensionImages= و ابزارهای systemd-sysext(8) و systemd-confext(8) پیروی می‌کند. ایمیج‌ها باید شامل یک فایل extension-release با فراداده‌ای باشند که با آنچه در os-release مربوط به IMAGE تعریف شده است مطابقت داشته باشد. ببینید: os-release(5). ایمیج‌ها می‌توانند ایمیج‌های بلوکی، زیرحجم‌های btrfs یا دایرکتوری‌ها باشند. برای اطلاعات بیشتر درباره سرویس‌های قابل‌حمل دارای افزونه، به بند "Extension Images" در Portable Services[1] مراجعه کنید.

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

به جای مسیر ایمیج می‌توان یک دایرکتوری نسخه‌بندی‌شده ".v/" را مشخص کرد، برای جزئیات به systemd.v(7) مراجعه فرمایید.

به جای مسیر دایرکتوری می‌توان یک دایرکتوری نسخه‌بندی‌شده ".v/" را مشخص کرد، برای جزئیات به systemd.v(7) مراجعه فرمایید.

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

--force

بررسی‌های ایمنی را نادیده می‌گیرد و ایمیج‌ها را (با افزونه‌ها) بدون اطمینان قبلی از اینکه واحدها در حال اجرا نیستند متصل یا جدا می‌کند، و اصراری ندارد که فایل extension-release.NAME در ایمیج افزونه با نام فایل ایمیج مطابقت داشته باشد.

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

-H, --host=

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

-M, --machine=

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

--no-pager

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

--no-legend

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

--no-ask-password

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

-h, --help

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

--version

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

ایمیج‌های سرویس قابل‌حمل ترجیحاً در /var/lib/portables/ ذخیره می‌شوند، اما در مسیرهای /etc/portables/، /run/portables/، /usr/local/lib/portables/ و /usr/lib/portables/ نیز جستجو می‌گردند. توصیه می‌شود فایل‌های ایمیج مستقیماً در /etc/portables/ یا /run/portables/ قرار داده نشوند (چرا که این مسیرها عموماً برای ذخیره داده‌های بزرگ یا غیرمتنی مناسب نیستند)، بلکه از این دایرکتوری‌ها تنها برای پیوند دادن ایمیج‌های قرارگرفته در نقاط دیگر به مسیر جستجوی ایمیج استفاده شود.

هنگامی که یک ایمیج سرویس قابل‌حمل متصل می‌شود، فایل‌های واحد منطبق روی میزبان در دایرکتوری‌های /etc/systemd/system.attached/ و /run/systemd/system.attached/ کپی می‌گردند. هنگامی که یک ایمیج جدا می‌شود، فایل‌های واحد دوباره از این دایرکتوری‌ها حذف می‌شوند.

هنگامی که ایمیج‌های سرویس قابل‌حمل متصل می‌شوند، یک دراپ‌این "profile" پیوند داده می‌شود که می‌تواند برای اعمال محدودیت‌های امنیتی (و سایر محدودیت‌ها) به‌صورت محلی استفاده شود. چهار دراپ‌این پروفایل به‌طور پیش‌فرض تعریف شده‌اند و در /usr/lib/systemd/portable/profile/ ارائه می‌شوند. پروفایل‌های محلی اضافی را می‌توان با قرار دادن آن‌ها در /etc/systemd/portable/profile/ تعریف کرد. پروفایل‌های پیش‌فرض عبارتند از:

جدول ۲. پروفایل‌ها

نام توضیحات
default این پروفایل پیش‌فرض است، چنانچه هیچ نام پروفایل دیگری از طریق --profile= تنظیم نشده باشد (به بالا مراجعه کنید). نسبتاً محدودکننده است، اما برای بارهای کاری متداول و بدون امتیاز ویژه سیستم کارآمد خواهد بود. این شامل دسترسی نوشتن به چارچوب ثبت وقایع، و همچنین دسترسی IPC به سیستم D-Bus می‌شود.
nonetwork بسیار شبیه به default است، اما شبکه برای تمام سرویس‌های ایمیج سرویس قابل‌حمل غیرفعال است.
strict پروفایلی با تنظیمات بسیار سخت‌گیرانه. این پروفایل دسترسی IPC (D-Bus) و شبکه را مستثنی و مسدود می‌کند.
trusted پروفایلی با تنظیمات بسیار آسان‌گیرانه. در این پروفایل، سرویس‌ها با امتیازات کامل اجرا می‌شوند.

برای جزئیات درباره این پروفایل‌ها و اثرات آن‌ها، به تعاریف دقیق آن‌ها مراجعه فرمایید، به عنوان مثال
/usr/lib/systemd/portable/profile/default/service.conf و موارد مشابه.

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

$SYSTEMD_LOG_COLOR

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

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

$SYSTEMD_LOG_TIME

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

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

$SYSTEMD_LOG_LOCATION

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

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

$SYSTEMD_LOG_TID

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

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

$SYSTEMD_LOG_TARGET

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

$SYSTEMD_LOG_RATELIMIT_KMSG

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

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

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

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

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

$SYSTEMD_COLORS

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

true

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

false

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

"16"، "256"، "24bit"

همیشه به ترتیب از ۱۶ رنگ پایه ANSI، ۲۵۶ رنگ، یا رنگ ۲۴ بیتی استفاده می‌کند.

"auto-16"، "auto-256"، "auto-24bit"

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

$SYSTEMD_URLIFY

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

systemd(1), systemd-sysext(8), org.freedesktop.portable1(5), systemd-portabled.service(8), importctl(1)

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