cron作业无法启动
问题描述:
我有一个cron作业cron作业无法启动
* * * * * /home/username/start.sh that runs every minutes
start.sh
内容:
touch /home/username/test.txt
firefox
cron作业改变了test.txt
时间戳,但无法打开firefox
。我曾尝试设置env变量,但它似乎不起作用。
答
您需要指向firefox
的绝对路径,您可以使用which firefox
作为普通用户。价值可能是例如/usr/bin/firefox
。
此外,firefox
是一个GUI程序,但cron作业在后台运行,并且不知道X,因此您无法以这种方式启动新的Firefox客户端。例如,考虑您是否通过网络和本地在同一台计算机上有两个桌面登录。从cron
运行时,Firefox应该显示在哪里?如果没有更复杂的设置(例如rdesktop
),它无法显示在两个地方。您可以一个给定的显示上运行它,如果你添加到环境中,像这样(未经):
export DISPLAY=:0.0
/usr/bin/firefox
但运行它的第一次,它已经运行后,Firefox会抗议,所以这只是如果您每分钟关闭一次窗口,都会开始工作。
你想完成什么?
如果你想check that a web server is running,你可以使用shell工具,如wget
或curl
(其中一个很可能已经安装)以刺激它。如果你想做测试(如果你想开发出好的软件,那么你会这么做),看看框架如Selenium和nodeunit。
是啊,我试了这个。它没有工作。如果我手动运行start.sh,firefox会打开,但不会与cronjob一起使用 – renacimiento
实际上,我写了一个脚本,它读取节点进程pid,并检查该pid是否正在运行,如果没有,它启动一个nohup节点进程,并将新的pid写入文件。我将运行此脚本,每隔5分钟用cronjob运行。现在,我无法使用cronjob运行此脚本.SO认为可能会尝试使用cron作业来测试cronjob并遇到这一个。 – renacimiento
感谢您的回答:)我有一个命令ps -ef | grep $ pidd | grep -v grep在shell脚本内运行良好。 但是这个声明不运行 如果ps -ef | grep $ pidd | grep -v grep;然后 – renacimiento