SYSTEMD.PRESET(5)

الاسم
systemd.preset - إعدادات تمكين الخدمة المسبقة

موجز

    /etc/systemd/system-preset/*.preset
    /run/systemd/system-preset/*.preset
    /usr/local/lib/systemd/system-preset/*.preset
    /usr/lib/systemd/system-preset/*.preset
    /etc/systemd/user-preset/*.preset
    /run/systemd/user-preset/*.preset
    /usr/local/lib/systemd/user-preset/*.preset
    /usr/lib/systemd/user-preset/*.preset
    /etc/systemd/initrd-preset/*.preset
    /run/systemd/initrd-preset/*.preset
    /usr/local/lib/systemd/initrd-preset/*.preset
    /usr/lib/systemd/initrd-preset/*.preset

الوصف

يمكن استخدام ملفات الإعداد المسبق لترميز سياسة تحدد أي الوحدات يجب تمكينها مبدئيًا وأيها يجب تعطيلها. تُقرأ هذه الملفات بواسطة systemctl preset الذي يستخدم هذه المعلومات لتمكين أو تعطيل وحدة. اعتمادًا على تلك السياسة، يكون systemctl preset مطابقًا لـ systemctl enable أو systemctl disable. يُستخدم systemctl preset بواسطة نصوص التثبيت اللاحقة لحزم rpm (أو تنسيقات حزم نظام تشغيل أخرى)، لتمكين/تعطيل وحدات محددة مبدئيًا عند تثبيت الحزمة، مما يفرض سياسة التوزيع أو الإصدار أو الإعداد المسبق للمسؤول. يسمح هذا باختيار مجموعة معينة من الوحدات لتمكينها/تعطيلها حتى قبل تثبيت الحزمة الفعلية. لمزيد من المعلومات، انظر systemctl(1).

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

إذا لم توجد ملفات إعداد مسبق، فستقوم عمليات الإعداد المسبق بتمكين جميع الوحدات المثبتة مبدئيًا. إذا لم يكن هذا مرغوبًا ويفضل تعطيل جميع الوحدات، فمن الضروري شحن ملف إعداد مسبق بسطر واحد شامل "disable *". (انظر المثال 1 أدناه.)

عند تشغيل الجهاز لأول مرة، سيقوم systemd(1) بتمكين/تعطيل جميع الوحدات وفقًا لسياسة الإعداد المسبق، بشكل مشابه لـ systemctl preset-all. انظر أيضًا ConditionFirstBoot= في systemd.unit(5) و"دلالات الإقلاع الأول" في machine-id(5).

تنسيق ملف الإعداد المسبق

تحتوي ملفات الإعداد المسبق على قائمة من التوجيهات، سطر واحد لكل توجيه. تُتجاهل الأسطر الفارغة والأسطر التي يكون أول حرف غير فراغي فيها "#" أو ";". يتكون كل توجيه من إحدى الكلمات "enable" أو "disable" أو "ignore"، متبوعة بمسافة واسم وحدة. قد يحتوي اسم الوحدة على أحرف بدل على نمط الصدفة.

بالنسبة لتوجيه التمكين لوحدات القالب، يمكن تحديد اسم مثيل واحد أو أكثر كقائمة مفصولة بمسافات بعد اسم الوحدة. في هذه الحالة، سيتم تمكين تلك المثيلات بدلاً من المثيل المحدد عبر DefaultInstance= في الوحدة.

يجب أن تشير الإعدادات المسبقة إلى ملف الوحدة "الحقيقي"، وليس إلى أي أسماء مستعارة. انظر systemd.unit(5) لوصف تسمية الوحدات المستعارة.

يُفهم ثلاثة توجيهات مختلفة: يمكن استخدام "enable" لتمكين الوحدات مبدئيًا، و"disable" لتعطيل الوحدات مبدئيًا، و"ignore" لتجاهل الوحدات وترك التكوين الحالي دون تغيير.

إذا طبقت أسطر متعددة على اسم وحدة، فإن أول سطر مطابق يأخذ الأسبقية على جميع الأسطر الأخرى.

يجب تسمية كل ملف إعداد مسبق بنمط <priority>-<policy-name>.preset. تتجاوز الملفات في /etc/ الملفات التي تحمل نفس الاسم في /usr/lib/ و /run/. تتجاوز الملفات في /run/ الملفات التي تحمل نفس الاسم في /usr/lib/. يجب على الحزم تثبيت ملفات الإعداد المسبق الخاصة بها في /usr/lib/. الملفات في /etc/ محجوزة للمسؤول المحلي، الذي يمكنه استخدام هذا المنطق لتجاوز ملفات الإعداد المسبق المثبتة بواسطة حزم البائعين. تُرتب جميع ملفات الإعداد المسبق حسب اسم ملفها بترتيب معجمي، بغض النظر عن الدليل الذي توجد فيه. إذا حددت ملفات متعددة نفس اسم الوحدة، فسيتم تطبيق الإدخال في الملف الذي يحمل الاسم الأقدم معجميًا. يُوصى بإضافة بادئة لجميع أسماء الملفات برقم مكون من خانتين وشرطة، لتبسيط ترتيب الملفات.

إذا أراد المسؤول تعطيل ملف إعداد مسبق مقدم من البائع، فالطريقة الموصى بها هي وضع رابط رمزي إلى /dev/null في /etc/systemd/system-preset/ يحمل نفس اسم الملف.

أمثلة

مثال 1. مبدئيًا معطل

    # /usr/lib/systemd/system-preset/99-default.preset

    disable *

يعطل هذا جميع الوحدات. نظرًا لبادئة اسم الملف "99-"، سيتم قراءته أخيرًا وبالتالي يمكن تجاوزه بسهولة بواسطة سياسة الإعداد المسبق للإصدار أو المسؤول.

مثال 2. تمكين مثيلات قالب متعددة

    # /usr/lib/systemd/system-preset/80-dirsrv.preset

    enable dirsrv@.service foo bar baz

هذا يُفعّل الخدمات الثلاث: dirsrv@foo.service و dirsrv@bar.service و dirsrv@baz.service.

مثال 3. إصدار جنوم

    # /usr/lib/systemd/system-preset/50-gnome.preset

    enable gdm.service
    enable colord.service
    enable accounts-daemon.service
    enable avahi-daemon.*

هذا يُفعّل الوحدات الثلاث المذكورة، بالإضافة إلى كل avahi-daemon بغض النظر عن نوع الوحدة. ملف كهذا قد يكون مفيدًا للإدراج في إصدار جنوم لتوزيعة. يضمن تفعيل الوحدات اللازمة لجنوم بشكل صحيح عند تثبيتها. يترك جميع الوحدات الأخرى دون تغيير، وتخضع لملفات الإعداد المسبق الأخرى (الأحدث)، مثل الملف من المثال الأول أعلاه.

مثال 4. سياسة المدير

    # /etc/systemd/system-preset/00-lennart.preset

    enable httpd.service
    enable sshd.service
    enable postfix.service
    disable *

هذا يُفعّل ثلاث خدمات محددة ويُعطّل كل الخدمات الأخرى. هذا مفيد للمديرين لاختيار الوحدات المراد تفعيلها تحديدًا، وتعطيل كل الأخرى. بسبب بادئة اسم الملف "00-" يُقرأ مبكرًا ويتجاوز جميع ملفات سياسة الإعداد المسبق الأخرى.

الدافع وراء منطق الإعداد المسبق

التوزيعات المختلفة لديها سياسات مختلفة حول الخدمات التي يجب تفعيلها مبدئيًا عند تثبيت الحزمة التي تأتي معها. في فيدورا، تبقى جميع الخدمات معطلة مبدئيًا، بحيث لا يؤدي تثبيت حزمة إلى تفعيل خدمة (مع بعض الاستثناءات). في دبيان، تُفعّل جميع الخدمات فورًا مبدئيًا، بحيث يؤدي تثبيت حزمة إلى تفعيل خدماتها على الفور.

حتى داخل توزيعة واحدة، الإصدارات المختلفة (النكهات، المزجات، أو أيًا كان ما تريد تسميتها) لتوزيعة لديها أيضًا سياسات مختلفة حول الخدمات التي يجب تفعيلها والخدمات التي يجب تركها. على سبيل المثال، فيدورا ووركستيشن تُفعّل gdm كمدير عرض مبدئيًا، بينما إصدار فيدورا كيدي يُفعّل sddm بدلاً من ذلك.

المواقع المختلفة قد يكون لديها أيضًا سياسات مختلفة حول ما يجب تشغيله مبدئيًا وما يجب إيقافه. على سبيل المثال، قد يفضل أحد المديرين فرض سياسة "sshd يجب أن يكون دائمًا قيد التشغيل، ولكن كل شيء آخر معطل"، بينما قد يقول آخر "snmpd دائمًا قيد التشغيل، وبالنسبة لكل شيء آخر استخدم المبدئيات لسياسة التوزيعة".

تقليديًا، كانت سياسة الخدمات التي يجب تفعيلها تُنفّذ في كل حزمة على حدة. هذا جعل تنفيذ سياسات مختلفة لكل إصدار أو موقع أمرًا مرهقًا، أو إنشاء حزم برمجية تفعل الشيء الصحيح على أكثر من توزيعة. كانت آلية التفعيل أيضًا ترمز لسياسة التفعيل.

آلية الإعداد المسبق تسمح بفصل نظيف بين آلية التفعيل (داخل نصوص الحزمة، باستدعاء systemctl preset) وسياسة التفعيل (مركزة في ملفات الإعداد المسبق)، وترفع التهيئة خارج الحزم الفردية. يمكن كتابة ملفات الإعداد المسبق لتوزيعات محددة، أو لإصدارات محددة، أو لمواقع محددة، لفرض سياسات مختلفة حسب الحاجة. يُوصى بتطبيق السياسة المرمزة في ملفات الإعداد المسبق في نصوص تثبيت الحزمة.

انظر أيضًا

systemd(1)، systemctl(1)، systemd-delta(1)

daemon(7) يحتوي على مناقشة لنصوص الحزم.

صفحة فيدورا التي تقدم استخدام الإعدادات المسبقة: Features/PackagePresets[1].

ملاحظات

1.  Features/PackagePresets
    https://fedoraproject.org/wiki/Features/PackagePresets

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

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

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