我正在尝试安排一些程序的执行。我正在使用以下命令:
./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'