我已成功将一些 cron 作业迁移到 systemd。我遵循了一些指南并采用了创建 3 个文件的标准方法:
myjob.timer - systemd timer unit
myjob.service - systemd service unit
myjob.sh
您可能会猜到,在某个时间 myjob.timer 被触发,它会运行 myjob.service,而 myjob.service 又会执行 myjob.sh。
我的所有计时器都有相同的设置,现在我看到一切正常,我想禁用 myjob.timer,它只是一个测试器。
我只是这样做:
systemctl --user disable myjob.timer
或者我还必须这样做:
systemctl --user disable myjob.service
什么是正确的做法?我对 systemd 还很陌生,所以我想学习如何以正确的方式做事。我猜测禁用这两个单元以保持系统免于超重行李运行是正确的。
答案1
如果myjob.service
不包含任何[Install]
块,那么只需禁用计时器就足够了。计时器是启动.service
文件的唯一工具,因此禁用后.timer
,任何内容都不会启动.service
文件。
还要记得跑步systemctl --user stop myjob.timer
。禁用计时器会阻止它在下次启动时启动,但它不会停止当前正在运行的计时器。