มีเหตุผลหลายประการที่ต้องเปลี่ยนชื่อบริการ systemd ในการผลิต ตัวอย่างเช่น:
- เพื่อแยกความแตกต่างจากสิ่งใหม่ให้ดีขึ้น
- เพราะเจ้านายสั่งไว้
- เนื่องจากสคริปต์ดั้งเดิม
- ...
สมมติว่าบริการทั่วไปใหม่ที่สร้างขึ้นใน /etc/systemd/system/foo.service
และเปิดใช้งานและเริ่มต้นดังต่อไปนี้: [1]
systemctl daemon-โหลดซ้ำ
เปิดใช้งาน systemctl -- ตอนนี้ foo
จากนั้น คุณอาจต้องการเปลี่ยนชื่อจาก ฟู.เซอร์วิส
ถึง บาร์.บริการ
โดยไม่ส่งผลกระทบต่อกระบวนการที่เกี่ยวข้องแต่อย่างใด
ในสถานการณ์ปกติ คุณสามารถทำได้ดังนี้:
mv foo.service bar.service
systemctl daemon-โหลดซ้ำ
systemctl ปิดใช้งาน foo
แถบเปิดใช้งาน systemctl
จากนั้นคุณจะได้รับ:
systemctl สถานะ foo
: วิ่ง
ไม่พบ
พิการ
แถบสถานะ systemctl
: ไม่ได้ทำงาน
เปิดใช้งาน
ดังนั้นคุณอาจต้องการแก้ไขด้วย:
systemctl หยุด foo
แถบเริ่มต้น systemctl
หรือด้วยการรีบูต อย่างไรก็ตาม ในสภาพแวดล้อมการใช้งานจริง สิ่งนี้ไม่สามารถทำได้เนื่องจากคุณไม่ต้องการหยุดแอปพลิเคชันสำหรับการเปลี่ยนแปลงดังกล่าว นอกจากนี้ การรีบูตมีกำหนดหลังจากเดือนหรือปี ในขณะเดียวกันก็มีความเสี่ยงที่จะให้บริการหยุดทำงานเป็นเวลานาน บาร์
ที่ไม่ควรเริ่มต้นโดยไม่ได้ตั้งใจก่อนที่จะหยุดการทำงานที่ไม่พบ ฟู
.
ในระยะสั้น คุณจะใช้วิธีใดในการเปลี่ยนชื่อบริการ systemd ในการผลิต
เงื่อนไขในอุดมคติคือการมีบริการทั้งสองที่เข้ากันได้แบบย้อนหลัง ดังนั้นการหยุด ฟู
ยังหยุด บาร์
และในทางกลับกัน.