我的 cronjob 中有一个可变随机延迟。它存在的理由很充分,它是为了分散自动化流程的负载,避免在不同的分钟或小时边界上出现峰值。
我怀疑(但不确定)有时当我重新启动机器时,systemd 会令人不舒服地挂起一段时间,以“等待 anacron 作业”。这种情况发生的频率并不高,不值得深入研究真相,但考虑到我只在计算机上设置了一个 cronjob,这似乎就是罪魁祸首。
我很好奇,想知道是否存在一种行业标准的简单技术,可用于配置为 cron 作业的脚本中,使其可中断。这里的想法是,如果我命令系统重新启动,在任何情况下我都不需要完成这个作业(它在执行实际工作之前有一个可变的随机长度的睡眠时间),我希望它在系统重新启动时被中断并从轨道上删除。有没有什么方法可以做到这一点?cron 或系统会向配置的作业脚本发送信号吗?我必须求助于自定义咒语来首先检查正在运行的作业,终止它们并阻止它们重新启动,然后发出重新启动命令吗?
答案1
除了使用 cron,您还可以创建 systemd 服务
创建服务时,您可以设置KillMode 和 KillSignal服务选项中的选项。