Time
如何防止 atd 執行過去的作業?
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
類似的東西?也許它只是一個你必須翻轉的配置開關……