สมมติว่าฉันเขียนmine.service
ไฟล์ systemctl enable mine.service
แล้วฉันจะใช้
หากภายหลังฉันตัดสินใจที่จะแก้ไขmine.service
ฉันต้องบอกsystemd
ว่าmine.service
มีการเปลี่ยนแปลงหรือไม่ ถ้าเป็นเช่นนั้นฉันจะทำอย่างไร
สมมติว่าฉันเขียนmine.service
ไฟล์ systemctl enable mine.service
แล้วฉันจะใช้
หากภายหลังฉันตัดสินใจที่จะแก้ไขmine.service
ฉันต้องบอกsystemd
ว่าmine.service
มีการเปลี่ยนแปลงหรือไม่ ถ้าเป็นเช่นนั้นฉันจะทำอย่างไร
คำตอบ:
หลังจากที่คุณทำการเปลี่ยนแปลงแฟ้มหน่วยของคุณคุณควรใช้systemctl daemon-reload
ที่ระบุไว้ที่นี่
daemon-reload
โหลดการกำหนดค่า systemd manager ใหม่ สิ่งนี้จะเรียกใช้กำเนิดใหม่ทั้งหมด (ดูsystemd.generator (7) ), โหลดไฟล์หน่วยทั้งหมดและสร้างต้นไม้ที่ขึ้นต่อกันทั้งหมด ในขณะที่ daemon กำลังโหลดใหม่ซ็อกเก็ต systemd ฟังในนามของการกำหนดค่าผู้ใช้จะสามารถเข้าถึงได้
จากนั้นคุณสามารถรีสตาร์ท (หรือโหลดซ้ำ) บริการของคุณตามที่คุณต้องการ
systemctl restart your-service-name
(daemon-reload จะไม่รีโหลด / รีสตาร์ทบริการด้วยตนเองเพียงทำให้ systemd รับรู้ถึงการกำหนดค่าใหม่)
daemon-reload
ไม่เป็นสากลต้องเรียกใช้systemctl --user daemon-reload
สำหรับบริการผู้ใช้
นอกเหนือจากคำตอบข้างต้น: ในกรณีที่คุณเปลี่ยนบางสิ่งบางอย่างใน[Install]
คำสั่งคุณอาจต้องเรียกใช้sudo systemctl reenable YOURUNITFILE
เพื่อสร้าง symlink ในไดเรกทอรี. เป้าหมาย
systemctl restart
เพื่อเริ่มบริการใหม่จริง ๆ ...