'at' 命令的预期行为?启动每个命令而不是调度

'at' 命令的预期行为?启动每个命令而不是调度

我正在尝试安排一些程序的执行。我正在使用以下命令:

./tests.o | at 15:00&

如果我理解正确的话,预期的行为是延迟执行到 15:00。但是,如果我top在启动上述命令后立即运行,我可以看到 tests.o 已经占用了 CPU 时间。

由于我需要在共享资源上启动多个测试,所以我想知道如何正确使用“at”?

我究竟做错了什么?

答案1

at从标准输入读取命令。你正在做的是运行./tests.o并输入它的输出字符串作为要at调度的命令。此外,不需要尾随的&,因为at会立即返回。

你需要的是:

echo ./tests.o | at 15:00

或者:

at 15:00 <<< ./tests.o

如果您希望计划命令使用重定向或其他 shell 功能,则需要使用引号,例如:

at 15:00 <<< './tests.o > tests.log'

相关内容