SYSTEMD.SCOPE(5)

الاسم
systemd.scope - تهيئة وحدة النطاق

موجز

scope.scope

الوصف

وحدات النطاق لا تُهيأ عبر ملفات تهيئة الوحدات، بل تُنشأ فقط برمجيًا باستخدام واجهات الناقل لـ systemd. تُسمى بشكل مشابه لأسماء الملفات. الوحدة التي ينتهي اسمها بـ ".scope" تشير إلى وحدة نطاق. تدير وحدات النطاق مجموعة من عمليات النظام. على عكس وحدات الخدمة، تدير وحدات النطاق عمليات منشأة خارجيًا، ولا تُفرع عمليات بنفسها.

الغرض الرئيسي لوحدات النطاق هو تجميع عمليات العامل لخدمة نظام للتنظيم ولإدارة الموارد.

يمكن استخدام systemd-run --scope لتشغيل أمر بسهولة في وحدة نطاق جديدة من سطر الأوامر.

انظر واجهات مجموعة التحكم الجديدة[1] للحصول على مقدمة حول كيفية استخدام وحدات النطاق من البرامج.

لاحظ أنه، على عكس وحدات الخدمة، لا تحتوي وحدات النطاق على عملية "رئيسية": جميع العمليات في النطاق متكافئة. دورة حياة وحدة النطاق ليست مرتبطة بعمر عملية محددة واحدة، بل بوجود عملية واحدة على الأقل في النطاق. هذا يعني أيضًا أن حالات الخروج لهذه العمليات ليست ذات صلة بحالة فشل وحدة النطاق. قد تدخل وحدات النطاق حالة فشل، على سبيل المثال بسبب استنفاد الموارد أو الوصول إلى مهلات الإيقاف، ولكن ليس بسبب إنهاء البرامج داخلها بشكل غير نظيف. نظرًا لأن العمليات المُدارة كوحدات نطاق تبقى عمومًا أبناء العملية الأصلية التي فرعتها، فإنه من واجب تلك العملية جمع حالات خروجها والتصرف بناءً عليها حسب الحاجة.

اعتمادات آلية

  التبعيات الضمنية

قد تُضاف تبعيات ضمنية نتيجة لمعلمات التحكم في الموارد كما هو موثق في systemd.resource-control(5).

  الاعتمادات المبدئية

تُضاف الاعتماديات التالية ما لم يُضبط DefaultDependencies=no:

    • ستحتوي وحدات النطاق آليًا على تبعيات من النوع Conflicts= و Before= على shutdown.target. تضمن هذه إزالة وحدات النطاق قبل إيقاف تشغيل النظام. فقط وحدات النطاق المشاركة في الإقلاع المبكر أو إيقاف تشغيل النظام المتأخر يجب أن تعطل خيار DefaultDependencies=.

الخيارات

قد تتضمن ملفات النطاق قسم [Unit]، الموصوف في systemd.unit(5).

قد تتضمن ملفات النطاق قسم [Scope]، الذي يحمل معلومات حول النطاق والوحدات التي يحتويها. عدد من الخيارات التي قد تُستخدم في هذا القسم مشتركة مع أنواع وحدات أخرى. هذه الخيارات موثقة في systemd.kill(5) و systemd.resource-control(5). الخيارات الخاصة بقسم [Scope] لوحدات النطاق هي التالية:

OOMPolicy=
    اضبط سياسة قتل العمليات عند نقص الذاكرة (OOM) للنواة وقاتل OOM في مساحة المستخدم systemd-oomd.service(8). في لينكس، عندما تصبح الذاكرة نادرة لدرجة أن النواة تواجه صعوبة في تخصيص الذاكرة لنفسها، قد تقرر قتل عملية جارية لتوفير الذاكرة وتقليل ضغطها. لاحظ أن systemd-oomd.service حل أكثر مرونة يهدف لمنع حالات نقص الذاكرة لمساحة المستخدم أيضًا، وليس النواة فقط، عبر محاولة إنهاء الخدمات مبكرًا، قبل أن تضطر النواة للتصرف.

    يأخذ هذا الإعداد أحد القيم continue أو stop أو kill. إذا ضُبط على continue وقُتلت عملية في الوحدة بواسطة قاتل OOM، يُسجل ذلك لكن الوحدة تستمر في العمل. إذا ضُبط على stop يُسجل الحدث وتُنهى عمليات الوحدة بشكل نظيف بواسطة مدير الخدمة. إذا ضُبط على kill وقُتلت إحدى عمليات الوحدة بواسطة قاتل OOM، يُطلب من النواة قتل جميع العمليات المتبقية للوحدة أيضًا، عن طريق ضبط سمة memory.oom.group على 1؛ انظر أيضًا صفحة النواة مجموعة التحكم 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=
    يهيئ أقصى وقت لتشغيل النطاق. إذا استُخدم هذا وكان النطاق نشطًا لفترة أطول من الوقت المحدد، يُنهى ويوضع في حالة فشل. مرر "infinity" (المبدئي) لتهيئة عدم وجود حد زمني للتشغيل.

    أُضيف في الإصدارة 244.

RuntimeRandomizedExtraSec=
    يعدل هذا الخيار RuntimeMaxSec= عن طريق زيادة الحد الأقصى لوقت التشغيل بمدة موزعة بالتساوي بين 0 والقيمة المحددة (بالثواني). إذا كان RuntimeMaxSec= غير محدد، فستُعطل هذه الميزة.

    أُضيف في الإصدار 250.

تحقق من systemd.unit(5)، و systemd.exec(5)، و systemd.kill(5) لمزيد من الإعدادات.

انظر أيضًا

systemd(1)، systemd-run(1)، systemd.unit(5)، systemd.resource-control(5)، systemd.service(5)، systemd.directives(7).

ملاحظات

1.  واجهات مجموعات التحكم الجديدة
    https://systemd.io/CONTROL_GROUP_INTERFACE

2.  مجموعة التحكم النسخة 2
    https://docs.kernel.org/admin-guide/cgroup-v2.html

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.