我有一個cron作業cron作業無法啓動
* * * * * /home/username/start.sh that runs every minutes
start.sh
內容:
touch /home/username/test.txt
firefox
cron作業改變了test.txt
時間戳,但無法打開firefox
。我曾嘗試設置env變量,但它似乎不起作用。
我有一個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