SYSTEMD-RUN-GENERATOR(8) systemd-run-generator SYSTEMD-RUN-GENERATOR(8)

systemd-run-generator - ژنراتور اجرای خودکار دستورات خط فرمان هسته لینوکس

/usr/lib/systemd/system-generators/systemd-run-generator

systemd-run-generator ژنراتوری است که خط فرمان هسته را می‌خواند و سه گزینه را درک می‌کند:

اگر گزینه systemd.run= مشخص شده و پس از آن یک خط فرمان بیاید، یک واحد با نام kernel-command-line.service برای آن تولید شده و سیستم با آن بوت می‌شود. این سرویس دارای Type=oneshot بوده و به‌طور پیش‌فرض با SuccessAction=exit و FailureAction=exit پیکربندی شده است، در نتیجه تضمین می‌کند که سیستم به محض اتمام دستور خاموش می‌شود. وضعیت خروج خط فرمان به مدیر کانتینر فراخواننده منتقل می‌شود، در صورتی که این مورد صدق کند (که ممکن است این وضعیت را بیشتر به شل فراخواننده منتقل کند — برای مثال systemd-nspawn(1) این کار را انجام می‌دهد). اگر این گزینه چندین بار استفاده شود، فایل واحد شامل چندین خط ExecStart= خواهد بود تا تمام دستورات را به ترتیب اجرا کند. دستور مانند یک سرویس عادی شروع می‌شود، یعنی با DefaultDependencies= فعال.

از systemd.run_success_action= و systemd.run_failure_action= برای تنظیم نحوه واکنش به تکمیل پردازش استفاده کنید. به‌ویژه اختصاص دادن "none" سیستم را پس از اتمام دستور در حال اجرا باقی می‌گذارد. برای جزئیات بیشتر درباره آرگومان‌های پشتیبانی‌شده، به systemd.unit(5) مراجعه کنید.

systemd-run-generator از systemd.generator(7) پیروی و آن را پیاده‌سازی می‌کند.

از دستوری مانند دستور زیر برای افزودن یک کاربر به پایگاه داده کاربران درون کانتینری که با systemd-nspawn(1) اجرا شده است استفاده کنید:

# systemd-nspawn -D mycontainer -b systemd.run='"adduser test"'

(به نیاز به نقل‌قول دوگانه در خط فرمان بالا توجه کنید. سطح اول نقل‌قول ('') توسط شل فرمانی که برای فراخوانی systemd-nspawn استفاده می‌شود پردازش و حذف می‌گردد. سطح دوم نقل‌قول ("") به خط فرمان هسته کانتینر منتقل شده و توسط systemd-run-generator پردازش و حذف می‌شود. هر دوی آن‌ها با هم تضمین می‌کنند که هر دو کلمه خط فرمان مشخص‌شده adduser test با هم در فایل واحد تولیدشده قرار گیرند و نه توسط شل فرمان و نه توسط ژنراتور از یکدیگر تفکیک نشوند.)

systemd(1), systemctl(1), kernel-command-line(7), systemd-nspawn(1), systemd.unit(5), systemd.service(5)

systemd 261.2