สมมติว่าฉันเขียน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เพื่อเริ่มบริการใหม่จริง ๆ ...