我使用 cron 在 Linux 中安排事务,但最近我发现了“at”命令。
sudo apt-get install at
我不明白这个命令的运行范围:
- 如何使用 at 来安排通常需要管理员权限的命令?
- 使用 at 调度的命令的工作目录 (pwd) 是什么?
此外,到目前为止我尝试过的所有方法都没有实现我想要的效果。
例如,我尝试在一分钟后启动 gedit:
echo "gedit" | at now + 1 minute
我等了一分钟,什么也没发生。
我试图在一分钟后关闭我的显示器:
echo "xset dpms force off" | at now + 1 minute
我等了一分钟,什么也没发生。
如果我无法让“at”在一分钟后可靠地执行一项任务,我如何确定它会在明天及以后执行我告诉它做的事情?
我在这里遗漏了什么?
答案1
请尝试:
~$ at now + 1 minute
at> ls -ahl > /tmp/at_test
at> ^D
/tmp/at_test
命令执行后你将会发现。
如果你想运行一些 GUI 应用程序,你应该指定DISPLAY
变量;用来echo $DISPLAY
找出你显示的
~$ at now + 1 minute
at> DISPLAY=:0 gedit
at> ^D
管道也可以:
echo "DISPLAY=:0 gedit" | at now + 1 minute