有没有办法设置 cron (或任何其他调度程序,如 anacron)来运行,以便在我恢复在笔记本电脑上工作后(例如挂起或关闭后)立即检查它是否执行了在我的笔记本电脑上安排的某个脚本不活跃?
原因是我经常做一些事情,比如暂停我的笔记本电脑或关闭它,而在这两种情况下 cron 显然都不会运行。当我返回正常操作时,不会执行错过的命令。
我知道有一个工具叫纳克朗对于不连续运行的机器,因此会定期检查计划的脚本是否运行,但问题是:
- 检查脚本是否运行之间有一个时间间隔,对我来说,用例之一是在晚上的某个时间更改屏幕颜色;晚上晚些时候启动我的笔记本电脑后,我最多只愿意等待半秒(!)直到颜色发生变化,我猜时间段为半秒的调度程序可能会引起一些我的系统上不必要的负载(如果可以进行这种快速检查)
- 对于 anacron 来说,等待期是几天,这排除了对 anacron 的任何调整:(
运行 rtcwake 也不是一个选择:用更多代码填充每个脚本以可能唤醒整个系统只是为了执行简单的管道操作(例如更改屏幕颜色)会太麻烦。
答案1
你的问题的答案是肯定的。您想要的“调度程序”是 systemd 计时器。它们非常灵活,您只需研究所有可用选项并配置一个或多个即可满足您的需求。
Arch wiki 是一个很好的起点。https://wiki.archlinux.org/title/Systemd/Timers