| SYSTEMD.SCOPE(5) | systemd.scope | SYSTEMD.SCOPE(5) |
نام (NAME)
systemd.scope - پیکربندی واحد محدوده (Scope)
خلاصه دستور (SYNOPSIS)
scope.scope
توضیحات (DESCRIPTION)
واحدهای محدوده (Scope units) از طریق فایلهای پیکربندی واحد پیکربندی نمیشوند، بلکه تنها بهصورت برنامهنویسیشده با استفاده از رابطهای گذرگاه (bus interfaces) سیستمدی ایجاد میگردند. نامگذاری آنها مشابه نام فایلها است. واحدی که نام آن به ".scope" ختم میشود، به یک واحد محدوده اشاره دارد. واحدهای محدوده مجموعهای از فرایندهای سیستمی را مدیریت میکنند. بر خلاف واحدهای سرویس، واحدهای محدوده فرایندهایی را که در خارج ایجاد شدهاند مدیریت میکنند و خودشان بهتنهایی فرایندی را فورک (fork) نمیکنند.
هدف اصلی واحدهای محدوده، گروهبندی فرایندهای کارگر (worker processes) یک سرویس سیستمی برای سازماندهی و مدیریت منابع است.
دستور systemd-run --scope میتواند برای راهاندازی آسان یک دستور در یک واحد محدودهٔ جدید از طریق خط فرمان استفاده شود.
برای آشنایی با نحوه استفاده از واحدهای محدوده از داخل برنامهها، به New Control Group Interfaces[1] مراجعه کنید.
توجه داشته باشید که بر خلاف واحدهای سرویس، واحدهای محدوده هیچ فرایند «اصلی» (main) ندارند: تمام فرایندهای موجود در محدوده معادل یکدیگرند. بنابراین، چرخه حیات واحد محدوده به طول عمر یک فرایند خاص وابسته نیست، بلکه به وجود حداقل یک فرایند در محدوده وابسته است. این امر همچنین بدان معناست که وضعیت خروج (exit status) این فرایندها برای وضعیت خرابی واحد محدوده ملاک نیست. واحدهای محدوده همچنان ممکن است وارد وضعیت خرابی شوند، مثلاً به دلیل اتمام منابع یا به پایان رسیدن مهلتهای زمانی توقف، اما نه به دلیل خاتمهٔ ناگهانی یا غیرعادی برنامههای درون آنها. از آنجا که فرایندهای مدیریتشده به عنوان واحدهای محدوده عموماً فرزندان فرایند اصلی ایجادکننده (fork کننده) باقی میمانند، این وظیفهٔ همان فرایند است که وضعیتهای خروج آنها را جمعآوری کرده و در صورت نیاز بر اساس آن اقدام کند.
وابستگیهای خودکار (AUTOMATIC DEPENDENCIES)
وابستگیهای ضمنی (Implicit Dependencies)
وابستگیهای ضمنی ممکن است در نتیجه پارامترهای کنترل منابع، همانطور که در systemd.resource-control(5) مستند شده است، اضافه شوند.
وابستگیهای پیشفرض (Default Dependencies)
وابستگیهای زیر اضافه میشوند مگر اینکه DefaultDependencies=no تنظیم شده باشد:
گزینهها (OPTIONS)
فایلهای محدوده میتوانند شامل یک بخش [Unit] باشند که در systemd.unit(5) شرح داده شده است.
فایلهای محدوده ممکن است شامل بخش [Scope] باشند که حامل اطلاعاتی درباره محدوده و واحدهای درون آن است. تعدادی از گزینههایی که میتوان در این بخش استفاده کرد، با سایر انواع واحد مشترک هستند. این گزینهها در systemd.kill(5) و systemd.resource-control(5) مستند شدهاند. گزینههای مختص بخش [Scope] واحدهای محدوده به شرح زیر هستند:
OOMPolicy=
این تنظیم یکی از مقادیر continue، stop یا kill را میپذیرد. اگر روی continue تنظیم شود و فرایندی در واحد توسط کشنده OOM کشته شود، این مورد ثبت (لاگ) میشود اما واحد به اجرای خود ادامه میدهد. اگر روی stop تنظیم شود، این رویداد ثبت شده و فرایندهای واحد بهطور تمیز توسط مدیر سرویس خاتمه مییابند. اگر روی kill تنظیم شود و یکی از فرایندهای واحد توسط کشنده OOM کشته شود، با تنظیم ویژگی memory.oom.group روی 1، به هسته دستور داده میشود که تمام فرایندهای باقیمانده واحد را نیز بکشد؛ همچنین صفحهٔ هسته Control Group v2[2] را ببینید. در هر دو حالت stop و kill، سرویس در نهایت به وضعیت شکستخوردهٔ oom-kill میرسد که پس از آن ممکن است Restart= اعمال شود.
بهطور پیشفرض به مقداری که تنظیم DefaultOOMPolicy= در systemd-system.conf(5) روی آن تنظیم شده است تعیین میشود، به جز واحدهایی که Delegate= در آنها روشن است، که در آن حالت پیشفرض روی continue است.
از تنظیم OOMScoreAdjust= استفاده کنید تا پیکربندی نمایید که آیا فرایندهای واحد باید توسط منطق کشنده OOM لینوکس به عنوان نامزدهای اولویتدار یا کماولویت برای خاتمه دادن در نظر گرفته شوند یا خیر. برای جزئیات به systemd.exec(5) مراجعه کنید.
این تنظیم برای systemd-oomd.service(8) نیز اعمال میشود. مشابه کشتنهای OOM انجامشده توسط هسته، این تنظیم وضعیت واحد را پس از اینکه systemd-oomd یک cgroup مرتبط با آن را خاتمه میدهد، تعیین میکند.
در نگارش 253 اضافه شد.
RuntimeMaxSec=
در نگارش 244 اضافه شد.
RuntimeRandomizedExtraSec=
در نگارش 250 اضافه شد.
برای تنظیمات بیشتر، systemd.unit(5)، systemd.exec(5) و systemd.kill(5) را بررسی کنید.
همچنین ببینید (SEE ALSO)
systemd(1)، systemd-run(1)، systemd.unit(5)، systemd.resource-control(5)، systemd.service(5)، systemd.directives(7).
نکات (NOTES)
- 1.
- New Control Group Interfaces
- 2.
- Control Group v2
| systemd 261.2 |