指定した時間にコンピューターの電源が切れている場合、「at」は後でコマンドを実行しますか?


20

でジョブをスケジュールしたいのですがat、指定された時間にコンピューターが中断された場合に何が起こるかわかりません:コンピューターが再び起動するとすぐにコマンドが実行されますanacronか(など)またはまったく実行されません(のようなcron)?

過去の特定の日時に絶対に実行するようにジョブを指定すると、ジョブはできるだけ早く実行されます。

それはマンページがそれについて言っていることですが、それは私の場合とは完全には一致していません:過去に実行するジョブを指定したくない、将来実行しat、コンピューターがどのように処理するかを尋ねる寝ています

この質問は、コマンドを実行するためにコンピューターを起動するかどうかを尋ねるので、コンピューターがスリープしているときRun atコマンドの複製ではありませんこれは、これらの「古い」ジョブの実行を防ぐ方法に関するものだからです(ただし、非常に良い答えです!)。atat

回答:


20

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 today3日後にコンピューターの電源を再投入すると突然実行されます。これを防止したい場合は、ここで提案されているようにジョブ自体の時間を確認できます:atdが過去のジョブを実行しないようにする方法は?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.