![我怎样才能让我的 cronjob 易于重启和进行其他中断?](https://linux22.com/image/773459/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E8%AE%A9%E6%88%91%E7%9A%84%20cronjob%20%E6%98%93%E4%BA%8E%E9%87%8D%E5%90%AF%E5%92%8C%E8%BF%9B%E8%A1%8C%E5%85%B6%E4%BB%96%E4%B8%AD%E6%96%AD%EF%BC%9F.png)
我的 cronjob 中有一个可变随机延迟。它存在的理由很充分,它是为了分散自动化流程的负载,避免在不同的分钟或小时边界上出现峰值。
我怀疑(但不确定)有时当我重新启动机器时,systemd 会令人不舒服地挂起一段时间,以“等待 anacron 作业”。这种情况发生的频率并不高,不值得深入研究真相,但考虑到我只在计算机上设置了一个 cronjob,这似乎就是罪魁祸首。
我很好奇,想知道是否存在一种行业标准的简单技术,可用于配置为 cron 作业的脚本中,使其可中断。这里的想法是,如果我命令系统重新启动,在任何情况下我都不需要完成这个作业(它在执行实际工作之前有一个可变的随机长度的睡眠时间),我希望它在系统重新启动时被中断并从轨道上删除。有没有什么方法可以做到这一点?cron 或系统会向配置的作业脚本发送信号吗?我必须求助于自定义咒语来首先检查正在运行的作业,终止它们并阻止它们重新启动,然后发出重新启动命令吗?
答案1
除了使用 cron,您还可以创建 systemd 服务
创建服务时,您可以设置KillMode 和 KillSignal服务选项中的选项。