我想在一天中的特定时刻运行一个 bash 文件。(8:00 和 20:00)。
我已经设法通过 crontab 完成此操作,并且如果我的计算机当时已关闭,也可以在启动时执行此操作。我唯一的问题是当我的笔记本电脑关闭或锁定时(windows_key + L)。有没有办法在我重新登录计算机或甚至在展开计算机时运行我的文件?因为我不想让 crontab 每分钟运行一次,然后在正确的时间检查 bash 文件?我已经找到了启动场景的各种示例,但这不包括笔记本电脑的展开和锁定屏幕。
答案1
如果您希望计划任务无论关机或暂停都能持久执行,那么 systemd 计时器可能是一个不错的选择。
有一个Persistent=true
选项systemd.timer
。它将上次触发的时间存储在磁盘上。下次激活计时器时(例如,启动时自动启动或从睡眠状态恢复),它会检查存储的时间并确定是否要触发。
要使用 systemd 计时器,有很多优秀的文档可供阅读,但 TL;DR 是:
您需要两个简短的 systemd 单元文件,一个
action.service
包含命令,另一个action.timer
包含计划时间和持久性。然后您需要
action.timer
通过和 启用systemctl enable action.timer
并启动systemctl start action.timer
,以使其有效。现在时间到了,
action.timer
就会激活action.service
。