سؤال هل يجب إعادة تحميل ملفات وحدة systemd عند تعديلها؟


دعونا نقول أن أكتب mine.service ملف. ثم أستخدم systemctl enable mine.service.

إذا قررت في وقت لاحق للتحرير mine.service، لا بد لي من معرفة ذلك systemd أن mine.service تم تغيير؟ إذا كان الأمر كذلك ، كيف أفعل ذلك؟


95
2018-06-23 03:17


الأصل




الأجوبة:


بعد إجراء تغييرات على ملف الوحدة الخاصة بك ، يجب عليك تشغيل systemctl daemon-reload، كما هي محددة هنا.

الخفي-تحديث
  إعادة تحميل مدير systemd التكوين. هذا سوف يعيد جميع المولدات (انظر systemd.generator (7)) ، أعد تحميل جميع ملفات الوحدة ، وأعد إنشاء شجرة التبعية بأكملها. أثناء إعادة تحميل البرنامج ، ستظل جميع مآخذ النظام يستمع إليها نيابة عن تكوين المستخدم.

يمكنك بعد ذلك إعادة تشغيل (أو إعادة تحميل) خدمتك كما تريد

systemctl restart your-service-name

(إعادة تحميل البرنامج الخفي لن يعيد تحميل / إعادة تشغيل الخدمات بأنفسهم ، فقط يجعل systemd مدركا للتكوين الجديد)


118
2018-06-23 11:38



وجدت أنني بحاجة أيضا لتشغيل systemctl restart لإعادة بالفعل الخدمة نفسها ... - hwjp
فقط في حالة، daemon-reload ليس عالميًا ، يجب أن يركض systemctl --user daemon-reload لخدمات المستخدم. - Olegs Jeremejevs


كإضافة إلى الإجابة أعلاه: في حالة تغيير شيء ما في [Install] التوجيهي ، قد تحتاج إلى تشغيل sudo systemctl reenable YOURUNITFILE لإعادة إنشاء الروابط في الدلائل .target.


2
2017-08-19 13:01



هذا فعل الخدعة لي! لم تحصل على السبب في أن systemctl لم يعيد تحميل ملف الخدمة. - antonagestam