SYSTEMD.TARGET(5) systemd.target SYSTEMD.TARGET(5)

systemd.target - پیکربندی واحد هدف (Target)

target.target

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

این نوع واحد هیچ گزینهٔ اختصاصی ندارد. برای گزینه‌های مشترک تمامی فایل‌های پیکربندی واحد، systemd.unit(5) را ببینید. موارد پیکربندی مشترک در بخش‌های عمومی [Unit] و [Install] پیکربندی می‌شوند. بخش جداگانه‌ای به نام [Target] وجود ندارد، زیرا هیچ گزینهٔ اختصاصی برای هدف قابل پیکربندی نیست.

واحدهای هدف هیچ عملکرد اضافی علاوه بر عملکردهای عمومی ارائه‌شده توسط واحدها ارائه نمی‌دهند. آن‌ها صرفاً واحدها را گروه‌بندی می‌کنند و این امکان را می‌دهند که از یک نام هدف واحد در تنظیمات Wants= و Requires= برای ایجاد وابستگی به مجموعه‌ای از واحدهای تعریف‌شده توسط هدف، و در تنظیمات Before= و After= برای برقراری ترتیب استفاده شود. هدف‌ها نام‌های استانداردی را برای نقاط همگام‌سازی در طول راه‌اندازی (boot) و خاموش شدن سیستم برقرار می‌سازند. به عنوان نکته‌ای مهم، برای مثال‌ها و توضیحات مربوط به هدف‌های استاندارد systemd، systemd.special(7) را ببینید.

واحدهای هدف جایگزینی انعطاف‌پذیرتر برای سطوح اجرای SysV (runlevels) در سیستم سنتی SysV init ارائه می‌دهند.

توجه داشته باشید که یک فایل واحد هدف نباید خالی باشد، مبادا به عنوان یک واحد ماسک‌شده (masked unit) در نظر گرفته شود. توصیه می‌شود یک بخش [Unit] ارائه شود که شامل گزینه‌های آگاهی‌بخش Description= و Documentation= باشد.

هیچ وابستگی ضمنی برای واحدهای هدف وجود ندارد.

وابستگی‌های زیر اضافه می‌شوند مگر اینکه DefaultDependencies=no تنظیم شده باشد:

•واحدهای هدف به‌طور خودکار تمامی وابستگی‌های پیکربندی‌شده از نوع Wants= یا Requires= را با وابستگی‌هایی از نوع After= تکمیل می‌کنند، مگر اینکه DefaultDependencies=no در واحدهای مشخص‌شده تنظیم شده باشد.

توجه داشته باشید که عکس این موضوع صادق نیست. به عنوان مثال، تعریف Wants=that.target در some.service به‌طور خودکار وابستگی ترتیبی After=that.target را برای some.service اضافه نمی‌کند. در عوض، some.service باید با تنظیم یک وابستگی ترتیبی مشخص After=that.target یا Before=that.target در فایل واحد service. خود، از عملکرد اصلی همگام‌سازی واحدهای نوع هدف استفاده کند.

•واحدهای هدف به‌طور خودکار وابستگی‌های Conflicts= و Before= را نسبت به shutdown.target کسب می‌کنند.

فایل‌های واحد هدف ممکن است شامل بخش‌های [Unit] و [Install] باشند که در systemd.unit(5) شرح داده شده‌اند. هیچ گزینه‌ای مختص این نوع فایل پشتیبانی نمی‌شود.

مثال 1. هدف مستقل ساده

# emergency-net.target
[Unit]
Description=Emergency Mode with Networking
Requires=emergency.target systemd-networkd.service
After=emergency.target systemd-networkd.service
AllowIsolate=yes

هنگام افزودن وابستگی‌ها به سایر واحدها، مهم است که بررسی شود آیا آن‌ها DefaultDependencies= را تنظیم کرده‌اند یا خیر. واحدهای سرویس، مگر اینکه DefaultDependencies=no را تنظیم کرده باشند، به‌طور خودکار وابستگی به sysinit.target دریافت می‌کنند. در این حالت، هر دو واحد emergency.target و systemd-networkd.service دارای DefaultDependencies=no هستند، بنابراین برای استفاده در این هدف مناسب بوده و sysinit.target را به همراه نمی‌آورند.

اکنون می‌توانید با اجرای systemctl isolate emergency-net.target یا با ارسال گزینهٔ systemd.unit=emergency-net.target در خط فرمان هسته (kernel command line)، به این حالت اضطراری منتقل شوید.

واحدهای دیگر می‌توانند WantedBy=emergency-net.target را در بخش [Install] داشته باشند. پس از اینکه با استفاده از systemctl enable فعال شدند، قبل از شروع به کار emergency-net.target راه‌اندازی خواهند شد. همچنین می‌توان بدون نیاز به تغییر واحدها، با استفاده از systemctl add-wants واحدهای دلخواه را به عنوان وابستگی‌های emergency.target اضافه کرد.

systemd(1)، systemctl(1)، systemd.unit(5)، systemd.special(7)، systemd.directives(7)

systemd 261.2