'\" t .TH "SYSTEMD\&.SCOPE" "5" "" "systemd 261.2" "systemd.scope" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" systemd.scope \- پیکربندی واحد محدوده (Scope) .SH "خلاصه دستور (SYNOPSIS)" .PP \fIscope\fR\&.scope .SH "توضیحات (DESCRIPTION)" .PP واحدهای محدوده (Scope units) از طریق فایل‌های پیکربندی واحد پیکربندی نمی‌شوند، بلکه تنها به‌صورت برنامه‌نویسی‌شده با استفاده از رابط‌های گذرگاه (bus interfaces) سیستم‌دی ایجاد می‌گردند\&. نام‌گذاری آن‌ها مشابه نام فایل‌ها است\&. واحدی که نام آن به "\&.scope" ختم می‌شود، به یک واحد محدوده اشاره دارد\&. واحدهای محدوده مجموعه‌ای از فرایندهای سیستمی را مدیریت می‌کنند\&. بر خلاف واحدهای سرویس، واحدهای محدوده فرایندهایی را که در خارج ایجاد شده‌اند مدیریت می‌کنند و خودشان به‌تنهایی فرایندی را فورک (fork) نمی‌کنند\&. .PP هدف اصلی واحدهای محدوده، گروه‌بندی فرایندهای کارگر (worker processes) یک سرویس سیستمی برای سازمان‌دهی و مدیریت منابع است\&. .PP دستور \fBsystemd\-run \fR\fB\fB\-\-scope\fR\fR می‌تواند برای راه‌اندازی آسان یک دستور در یک واحد محدودهٔ جدید از طریق خط فرمان استفاده شود\&. .PP برای آشنایی با نحوه استفاده از واحدهای محدوده از داخل برنامه‌ها، به \m[blue]\fBNew Control Group Interfaces\fR\m[]\&\s-2\u[1]\d\s+2 مراجعه کنید\&. .PP توجه داشته باشید که بر خلاف واحدهای سرویس، واحدهای محدوده هیچ فرایند «اصلی» (main) ندارند: تمام فرایندهای موجود در محدوده معادل یکدیگرند\&. بنابراین، چرخه حیات واحد محدوده به طول عمر یک فرایند خاص وابسته نیست، بلکه به وجود حداقل یک فرایند در محدوده وابسته است\&. این امر همچنین بدان معناست که وضعیت خروج (exit status) این فرایندها برای وضعیت خرابی واحد محدوده ملاک نیست\&. واحدهای محدوده همچنان ممکن است وارد وضعیت خرابی شوند، مثلاً به دلیل اتمام منابع یا به پایان رسیدن مهلت‌های زمانی توقف، اما نه به دلیل خاتمهٔ ناگهانی یا غیرعادی برنامه‌های درون آن‌ها\&. از آنجا که فرایندهای مدیریت‌شده به عنوان واحدهای محدوده عموماً فرزندان فرایند اصلی ایجادکننده (fork کننده) باقی می‌مانند، این وظیفهٔ همان فرایند است که وضعیت‌های خروج آن‌ها را جمع‌آوری کرده و در صورت نیاز بر اساس آن اقدام کند\&. .SH "وابستگی‌های خودکار (AUTOMATIC DEPENDENCIES)" .SS "وابستگی‌های ضمنی (Implicit Dependencies)" .PP وابستگی‌های ضمنی ممکن است در نتیجه پارامترهای کنترل منابع، همان‌طور که در \fBsystemd.resource-control\fR(5) مستند شده است، اضافه شوند\&. .SS "وابستگی‌های پیش‌فرض (Default Dependencies)" .PP وابستگی‌های زیر اضافه می‌شوند مگر اینکه \fIDefaultDependencies=no\fR تنظیم شده باشد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} واحدهای محدوده به‌طور خودکار وابستگی‌هایی از نوع \fIConflicts=\fR و \fIBefore=\fR نسبت به shutdown\&.target خواهند داشت\&. این موارد تضمین می‌کنند که واحدهای محدوده پیش از خاموش شدن سیستم برداشته (حذف) شوند\&. تنها واحدهای محدوده‌ای که در مراحل اولیه راه‌اندازی یا مراحل پایانی خاموش شدن سیستم دخیل هستند باید گزینهٔ \fIDefaultDependencies=\fR را غیرفعال کنند\&. .RE .SH "گزینه‌ها (OPTIONS)" .PP فایل‌های محدوده می‌توانند شامل یک بخش [Unit] باشند که در \fBsystemd.unit\fR(5) شرح داده شده است\&. .PP فایل‌های محدوده ممکن است شامل بخش [Scope] باشند که حامل اطلاعاتی درباره محدوده و واحدهای درون آن است\&. تعدادی از گزینه‌هایی که می‌توان در این بخش استفاده کرد، با سایر انواع واحد مشترک هستند\&. این گزینه‌ها در \fBsystemd.kill\fR(5) و \fBsystemd.resource-control\fR(5) مستند شده‌اند\&. گزینه‌های مختص بخش [Scope] واحدهای محدوده به شرح زیر هستند: .PP \fIOOMPolicy=\fR .RS 4 سیاست کشتن فرایند هنگام کمبود حافظه (OOM) را برای هسته و کشنده OOM در فضای کاربری \fBsystemd-oomd.service\fR(8) پیکربندی می‌کند\&. در لینوکس، زمانی که حافظه آن‌قدر کم می‌شود که هسته در تخصیص حافظه برای خود دچار مشکل می‌گردد، ممکن است تصمیم بگیرد فرایندی در حال اجرا را بکشد تا حافظه آزاد شده و فشار حافظه کاهش یابد\&. توجه داشته باشید که systemd\-oomd\&.service یک راهکار انعطاف‌پذیرتر است که با تلاش برای خاتمه دادن زودهنگام به سرویس‌ها پیش از آنکه هسته ناچار به مداخله شود، هدف جلوگیری از شرایط کمبود حافظه برای فضای کاربری را نیز (علاوه بر هسته) دنبال می‌کند\&. .sp این تنظیم یکی از مقادیر \fBcontinue\fR، \fBstop\fR یا \fBkill\fR را می‌پذیرد\&. اگر روی \fBcontinue\fR تنظیم شود و فرایندی در واحد توسط کشنده OOM کشته شود، این مورد ثبت (لاگ) می‌شود اما واحد به اجرای خود ادامه می‌دهد\&. اگر روی \fBstop\fR تنظیم شود، این رویداد ثبت شده و فرایندهای واحد به‌طور تمیز توسط مدیر سرویس خاتمه می‌یابند\&. اگر روی \fBkill\fR تنظیم شود و یکی از فرایندهای واحد توسط کشنده OOM کشته شود، با تنظیم ویژگی memory\&.oom\&.group روی \fB1\fR، به هسته دستور داده می‌شود که تمام فرایندهای باقی‌مانده واحد را نیز بکشد؛ همچنین صفحهٔ هسته \m[blue]\fBControl Group v2\fR\m[]\&\s-2\u[2]\d\s+2 را ببینید\&. در هر دو حالت \fBstop\fR و \fBkill\fR، سرویس در نهایت به وضعیت شکست‌خوردهٔ \fBoom\-kill\fR می‌رسد که پس از آن ممکن است \fIRestart=\fR اعمال شود\&. .sp به‌طور پیش‌فرض به مقداری که تنظیم \fIDefaultOOMPolicy=\fR در \fBsystemd-system.conf\fR(5) روی آن تنظیم شده است تعیین می‌شود، به جز واحدهایی که \fIDelegate=\fR در آن‌ها روشن است، که در آن حالت پیش‌فرض روی \fBcontinue\fR است\&. .sp از تنظیم \fIOOMScoreAdjust=\fR استفاده کنید تا پیکربندی نمایید که آیا فرایندهای واحد باید توسط منطق کشنده OOM لینوکس به عنوان نامزدهای اولویت‌دار یا کم‌اولویت برای خاتمه دادن در نظر گرفته شوند یا خیر\&. برای جزئیات به \fBsystemd.exec\fR(5) مراجعه کنید\&. .sp این تنظیم برای \fBsystemd-oomd.service\fR(8) نیز اعمال می‌شود\&. مشابه کشتن‌های OOM انجام‌شده توسط هسته، این تنظیم وضعیت واحد را پس از اینکه \fBsystemd\-oomd\fR یک cgroup مرتبط با آن را خاتمه می‌دهد، تعیین می‌کند\&. .sp در نگارش 253 اضافه شد\&. .RE .PP \fIRuntimeMaxSec=\fR .RS 4 حداکثر زمان اجرای محدوده را پیکربندی می‌کند\&. اگر از این گزینه استفاده شود و محدوده برای مدت زمان طولانی‌تری نسبت به زمان مشخص‌شده فعال بوده باشد، خاتمه یافته و در وضعیت شکست قرار می‌گیرد\&. برای پیکربندی بدون محدودیت زمان اجرا، مقدار "infinity" (پیش‌فرض) را ارسال کنید\&. .sp در نگارش 244 اضافه شد\&. .RE .PP \fIRuntimeRandomizedExtraSec=\fR .RS 4 این گزینه \fIRuntimeMaxSec=\fR را با افزایش حداکثر زمان اجرا به اندازه مدت‌زمانی با توزیع یکنواخت بین ۰ و مقدار مشخص‌شده (به ثانیه) اصلاح می‌کند\&. اگر \fIRuntimeMaxSec=\fR مشخص نشده باشد، این ویژگی غیرفعال خواهد بود\&. .sp در نگارش 250 اضافه شد\&. .RE .PP برای تنظیمات بیشتر، \fBsystemd.unit\fR(5)، \fBsystemd.exec\fR(5) و \fBsystemd.kill\fR(5) را بررسی کنید\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBsystemd\fR(1)، \fBsystemd-run\fR(1)، \fBsystemd.unit\fR(5)، \fBsystemd.resource-control\fR(5)، \fBsystemd.service\fR(5)، \fBsystemd.directives\fR(7)\&. .SH "نکات (NOTES)" .IP " 1." 4 New Control Group Interfaces .RS 4 \%https://systemd.io/CONTROL_GROUP_INTERFACE .RE .IP " 2." 4 Control Group v2 .RS 4 \%https://docs.kernel.org/admin-guide/cgroup-v2.html .RE