如果计算机在指定时间关闭,那么at以后会运行命令吗?


20

我想用来计划作业at,但是我不确定如果计算机在指定的时间挂起会发生什么:计算机再次唤醒(如anacron),命令将立即执行吗?还是根本不执行(如cron)?

如果您将作业指定为绝对在过去的特定时间和日期运行,则该作业将尽快运行。

手册页就是这么说的,但是这与我的情况不完全相同:我不想指定要在过去运行的作业,我想在将来运行,并询问at如果计算机将如何处理那是在睡觉

这不是计算机休眠时“运行于”命令的副本,因为此问题询问是否at将唤醒计算机以执行命令,也不是“ 如何防止atd运行过去的作业”的副本因为这是关于如何防止at执行那些“旧的”作业(尽管有一个很好的答案!)。

Answers:


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 today很可能在三天后再次打开计算机电源时突然执行。如果您想避免这种情况,可以按照以下建议检查工作本身的时间:如何防止atd过去执行工作?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.