我正在学习 Linux 调度命令,包括、at
等。我尝试通过该命令在 x 分钟后启动。这就是我所拥有的:cron
sleep
gedit
at
kedar@i5 ~ $ at now + 1 minute
at now + 1 minute
warning: commands will be executed using /bin/sh
at> ./s.sh
at> <EOT>
job 18 at Fri Aug 15 13:21:00 2014
的内容s.sh(-rwxr--r--):
#!/bin/sh
#set $DISPLAY=:0
echo "Created on" `date` >t.txt
gedit #(also tried /usr/bin/gedit and `gedit` and systen(/usr/bin/gedit))
1 分钟后,将创建包含预期内容的 t.txt。不过还gedit
没有推出。就此而言,我的程序(firefox
、xcalc
等xfce4-terminal
)都不能通过这种方式启动at
。
奇怪的是,当我./s.sh
在 bash 中运行时,gedit
打开得很好。
我还尝试运行at
(从文件 - 如果这是完全正确的):
kedar@i5 ~ $ at now + 1 minute -f ./s.sh
at
我猜我使用shell 脚本的方式有问题。我也不能at
在没有 shell 脚本的情况下使用吗?谢谢。
答案1
您需要设置显示变量,但这样做是这样的:
#!/bin/bash
export DISPLAY=":0"
gedit
进而
at now + 1 minute -f test.sh
为我工作Ubuntu 14.04.1 LTS