2013-12-21 157 views
1

我有一個cron作業cron作業無法啓動

* * * * * /home/username/start.sh that runs every minutes 

start.sh內容:

touch /home/username/test.txt 
firefox 

cron作業改變了test.txt時間戳,但無法打開firefox。我曾嘗試設置env變量,但它似乎不起作用。

回答

2

您需要指向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工具,如wgetcurl(其中一個很可能已經安裝)以刺激它。如果你想做測試(如果你想開發出好的軟件,那麼你會這麼做),看看框架如Seleniumnodeunit

+0

是啊,我試了這個。它沒有工作。如果我手動運行start.sh,firefox會打開,但不會與cronjob一起使用 – renacimiento

+0

實際上,我寫了一個腳本,它讀取節點進程pid,並檢查該pid是否正在運行,如果沒有,它啓動一個nohup節點進程,並將新的pid寫入文件。我將運行此腳本,每隔5分鐘用cronjob運行。現在,我無法使用cronjob運行此腳本.SO認爲可能會嘗試使用cron作業來測試cronjob並遇到這一個。 – renacimiento

+0

感謝您的回答:)我有一個命令ps -ef | grep $ pidd | grep -v grep在shell腳本內運行良好。 但是這個聲明不運行 如果ps -ef | grep $ pidd | grep -v grep;然後 – renacimiento