了解 at-command 以安排另一个命令

Lon*_*est 3 command-line cron scheduled schedule at-command

我使用 cron 在 Linux 中安排事情,但最近我发现了“at”命令。

sudo apt-get install at
Run Code Online (Sandbox Code Playgroud)

我不明白这个命令的作用范围:

  • 您将如何使用通常需要管理员权限的 at 安排命令?
  • 用 at 调度的命令的工作目录 (pwd) 是什么?

此外,到目前为止我尝试过的一切都没有实现我想要做的。

例如,我试图在一分钟后启动 gedit:

echo "gedit" | at now + 1 minute
Run Code Online (Sandbox Code Playgroud)

我等了一会儿,什么也没发生。

从现在起一分钟后,我试图关闭显示器:

echo "xset dpms force off" | at now + 1 minute
Run Code Online (Sandbox Code Playgroud)

我等了一会儿,什么也没发生。

如果我不能在一分钟后“在”可靠地执行一项任务,我怎么能确定它会执行我告诉它明天和以后要做的事情?

我在这里缺少什么?

Dan*_*Dan 6

试试吧:

~$  at now + 1 minute
at> ls -ahl > /tmp/at_test
at> ^D
Run Code Online (Sandbox Code Playgroud)

/tmp/at_test命令执行后你会发现。

如果你想运行一些 GUI 应用程序,你应该指定DISPLAY变量;使用echo $DISPLAY找出你展示

~$  at now + 1 minute
at> DISPLAY=:0 gedit
at> ^D
Run Code Online (Sandbox Code Playgroud)

管道也可以:

echo "DISPLAY=:0 gedit" | at now + 1 minute
Run Code Online (Sandbox Code Playgroud)

  • @dan08,`at` 不导出`DISPLAY` 变量。@LonnieBest,您可以使用以下命令运行 gedit:`at now + 1 minute` `DISPLAY=:0 gedit` `^D` (3认同)