Scheduling

如果電腦在指定時間關閉,at 會稍後執行命令嗎?

  • December 15, 2017

我想用 安排作業at,但我不確定如果電腦在指定時間掛起會發生什麼: 電腦再次喚醒時會立即執行命令(如用anacron)還是根本不執行(像cron)?

如果您指定一個作業絕對在過去的特定時間和日期執行,該作業將盡快執行。

這就是手冊頁所說的,但它與我的情況不太匹配:我不想指定過去執行的作業,我想在將來執行它並詢問at如果電腦將如何處理它正在睡覺呢。

這不是電腦睡眠時執行命令的副本,因為此問題詢問是否at會喚醒電腦以執行命令,也不是如何防止 atd 執行過去的作業?因為這是關於如何防止at執行那些“舊”作業(儘管答案非常好!)。

at執行喚醒電腦之前應該執行的任何命令,但可能需要幾分鐘才能完成。你是否給它一個特定的日期甚至都沒有關係,因為你可以很容易地測試:

$ sudo date -s "2017-12-15 23:57:00"
$ at 23:59 17-12-15 <<<'echo executed >at_test'
job 1 at Fri Dec 15 23:59:00 2017
# suspend, wake after four minutes
$ date
Sat Dec 16 00:01:17 CET 2017
$  cat <at_test || atq
bash: /home/dessert/at_test: No such file or directory
1       Fri Dec 15 23:59:00 2017 a dessert
# wait a few minutes
$  cat <at_test || atq
executed

因此,您添加的作業at 20:00 today很可能會在三天后再次打開電腦時突然執行。如果您想防止這種情況發生,您可以像這裡建議的那樣檢查作業本身的時間:如何防止 atd 執行過去的作業?

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