تبدأ سياسة إعادة التشغيل المضافة لنفق واحد بالانطباق على كل نفق على الجهاز. هذا ليس خطأً في systemd؛ بل هو الفرق بين drop-in الخاص بالنسخة وdrop-in الخاص بالقالب. المسار الذي تكتب الملف تحته يحدد عدد الخدمات التي ترثه.

اختر النطاق قبل الإعداد. المجلدان يبدوان متطابقين تقريبًا، وواحد فقط منهما محصور في النسخة التي تقصدها.

العَرَض: تعديل واحد، كل الأنفاق

يسكن drop-in الخاص بنسخة معينة تحت مجلد يحمل اسم النسخة الكامل، مثل [email protected]. ويسكن drop-in القالب تحت [email protected]، مع علامة @ وبدون اسم نسخة بينهما. الأول ينطبق على office فقط. والثاني ينطبق على كل خدمة تُنشأ من ذلك القالب.

لا يصل نموذج القالب إلى قالب [email protected] منفصل، ولا يصل إلى خدمات غير ذات صلة تحمل openvpn في اسمها.

اختر المجلد المطابق للنطاق

يقع المجلدان تحت /etc/systemd/system/. وإسقاط المكوّن الأخير system يُنشئ مسارًا لا يقرأه systemd كتجاوز نظام، وهذه طريقة صامتة لجعل ملف يبدو صحيحًا لا يفعل شيئًا. اكتب المسار الكامل مرة واحدة وأعد استخدامه.

يحتاج drop-in أيضًا إلى عنوان القسم الصحيح. تنتمي إعدادات الخدمة تحت [Service]. والملف الذي يحوي إعدادات بلا قسم يُتجاهل أو يُرفض، وتظل الوحدة تعمل كما كانت بينما يجلس الملف هناك بمظهر موثوق.

احتفظ بالغرض في اسم الملف إذا أضفت أكثر من drop-in. الترتيب المعجمي يحدد الدمج، والاسم الذي يبيّن وظيفة الملف يجعل ذلك الترتيب مقروءًا.

اقرأ الوحدة المدمجة قبل الكتابة

اقرأ الوحدة المدمجة قبل كتابة أي شيء. يطبع systemctl cat [email protected] الوحدة الرئيسية وكل drop-in ينطبق عليها، بترتيب الدمج. قارنه بنسخة ثانية عندما تفكر في تغيير القالب. يبيّن ذلك المقارنة بالضبط الخدمات التي سترث التعديل.

ملف النسخة لا يمحو إعدادات القالب. يُدمج الاثنان، لذا قيمة في القالب نسيتها قد تظل سارية.

تشارك أيضًا ملفات drop-in الأخرى المسماة وإعدادات وقت التشغيل والتهيئة التي توفرها الحزم. لا تفترض أن الملف الذي عدّلته أخيرًا هو الوحدة كلها. المخرجات المدمجة هي الوحدة.

أبقِ سياسة الوحدة خارج الملف الشخصي

أبقِ سياسة الوحدة وتهيئة VPN منفصلتين. لا تصبح توجيهات الملف الشخصي صياغة systemd صحيحة لمجرد أنها تحت [Service]. وإعداد إعادة التشغيل لا ينتمي أيضًا إلى ملف .ovpn.

هذا الفصل هو أيضًا سبب كون سياسة إعادة التشغيل ليست الشيء نفسه كـ OpenVPN في استرداد الأقران الخاص به. قرر أي سلوك تريد قبل اختيار النطاق.

طبّقها وتحقق من النسخة

بعد التغيير، أعد تحميل تعريفات المدير باستخدام systemctl daemon-reload. ذلك التحميل لا يعيد تشغيل النفق؛ بل يعيد قراءة ملفات الوحدات فقط. ثم طبّق إجراء دورة الحياة الذي أردته على النسخة المحددة بالضبط.

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

إذا كانت السياسة مشتركة فعلًا، فانقلها إلى القالب عمدًا وتحقق من نسخة ثانية قبل اعتبار الأمر منتهيًا. أما مرجع وحدة systemd فيوثّق أولوية drop-in وترتيب الدمج.

مقالات ذات صلة