วิธีใดที่ถูกต้องในการปิดการใช้งาน systemd unit timer?


18

ฉันได้ย้ายงาน cron ของฉันไปที่ systemd สำเร็จแล้ว ฉันทำตามคำแนะนำและใช้แนวทางมาตรฐานในการสร้าง 3 ไฟล์:

myjob.timer - systemd timer unit
myjob.service - systemd service unit
myjob.sh

ในขณะที่คุณสามารถเดาได้ว่าบางครั้ง myjob.timer จะถูกเรียกใช้ซึ่งจะเรียกใช้ myjob.service ซึ่งจะเรียกใช้ myjob.sh

ฉันมีการตั้งค่าเดียวกันสำหรับตัวจับเวลาทั้งหมดของฉันและตอนนี้ฉันเห็นว่าทุกอย่างทำงานได้ดีฉันต้องการปิดการใช้งาน myjob.timer ซึ่งเป็นเพียงเครื่องทดสอบ

ฉันแค่ทำ:

systemctl --user disable myjob.timer

หรือฉันต้องทำ:

systemctl --user disable myjob.service

สิ่งที่ถูกต้องทำคืออะไร? ฉันค่อนข้างใหม่กับ systemd ดังนั้นฉันต้องการเรียนรู้วิธีการทำสิ่งที่ถูกต้อง ฉันเดาว่ามันถูกต้องที่จะปิดการใช้งานทั้งสองหน่วยเพื่อให้ระบบปราศจากสัมภาระส่วนเกิน

คำตอบ:


18

หากmyjob.serviceไม่มีการ[Install]บล็อกก็เพียงพอแล้วที่จะปิดการใช้งานตัวจับเวลา ตัวจับเวลาเป็นสิ่งเดียวที่เริ่มต้น.serviceไฟล์ดังนั้นเมื่อ.timerปิดการใช้งานไม่มีอะไรจะเริ่ม.serviceไฟล์

systemctl --user stop myjob.timerยังจำได้ที่จะเรียกใช้ การปิดใช้งานตัวจับเวลาจะป้องกันไม่ให้เริ่มในการบู๊ตครั้งถัดไป แต่จะไม่หยุดตัวจับเวลาที่กำลังทำงานอยู่


ฉันมีบล็อก [ติดตั้ง] ในแต่ละตัวจับเวลา มันมีหนึ่งรายการว่า 'WantedBy = default.target' ฉันได้สิ่งนี้จากไกด์ที่ฉันติดตาม ฉันจะกำจัด [ติดตั้ง] บล็อคทั้งหมดได้หรือไม่
bitofagoob

1
ตกลง. ฉันได้อ่านเกี่ยวกับส่วน [ติดตั้ง] และฉันคิดว่า WantedBy = default.target อยู่ที่นั่นเพื่อให้แน่ใจว่าเมื่อเปิดใช้งานเครื่องจะเปิดใช้งานในระหว่างการบู๊ตปกติ (ทั้งผู้ใช้หลายคนหรือกราฟิก) ฉันจะรับคำแนะนำของ Mark Stosberg และปิดใช้งานเฉพาะหน่วยจับเวลา ฉันจะทำเครื่องหมายคำตอบของเขาว่าเป็นทางออก ทำเครื่องหมายไชโย!
bitofagoob

2
คุณต้องการส่วน [ติดตั้ง] ในหน่วยตัวจับเวลาของคุณเพื่อให้พวกเขาเริ่มต้นในการบูต WantedBy=timers.targetมักจะ คุณต้องการเฉพาะ[Install]ส่วนสำหรับบริการหากคุณต้องการให้บริการเริ่มต้นในเวลาบูทซึ่งดูเหมือนว่าคุณไม่ต้องการในกรณีนี้
Mark Stosberg

1
ขอบคุณ ฉันได้ลบส่วน [ติดตั้ง] ออกจากหน่วยบริการแล้วเปลี่ยนส่วน [ติดตั้ง] ในตัวจับเวลาของฉันเป็น WantedBy = timers.target
bitofagoob
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.