Time

如何防止 atd 執行過去的作業?

  • July 25, 2012

at 守護程序是一個很棒的工具!但是,如果作業安排在上午 8:00 並且機器在那個時間關閉,那麼只要機器啟動,at 就會執行該作業。如果時間過去了,我想做的是阻止它執行這項工作。我已經搜尋了手冊頁和線上,但要麼沒有答案,要麼找不到答案。我正在使用 Arch,但據我所知,跨發行版非常相似。

任何幫助深表感謝!

一份工作什麼時候成為過去的工作?如果您在 7:59:50 打開系統並且at守護程序在 開始8:00:01,那麼作業是否應該執行?如果守護程序在 7:59:59 開始,但需要兩秒鐘來讀取所有文件怎麼辦?

你決定!通過時間檢查開始您的工作,如果時間過去則中止。

export execute_by_date=$(date +%s 'tomorrow 8:01')
at tomorrow 8:00
[ "$(date +%s)" -le "$execute_by_date" ] || exit
do_stuff
␄

您可以編寫一個初始化腳本,在關機或重新啟動時取消所有已調度的 at-jobs。

我不確定 Arch-Linux - 是否有/etc/sysconfig/at類似的東西?也許它只是一個你必須翻轉的配置開關……

引用自:https://unix.stackexchange.com/questions/43847