2012-10-31 60 views
0

我用這個bash腳本來檢查服務運行或不運行如果運行腳本將退出,否則它將運行另一個腳本,其中將執行一些命令 ,一旦完成它將退出 我的問題是,當我運行我的腳本manuly其工作正常,但是當我用cron的其未在運行,而不是正確地在這裏執行運行它是我的腳本shell腳本調整 - 不能正常工作與cron

#!/bin/sh 
    SERVICE='loop2.sh' 

    if ps ax | grep -v grep | grep $SERVICE > /dev/null 
then 
    echo "$SERVICE service running, everything is fine" 
else 
/home//www/loop2.sh 
fi 

任何調整給我的腳本在cron

工作正常

回答

1

你不是非常具體。你看到什麼錯誤?

請注意,進程在cron下運行,具有裁減環境。特別是環境變量,例如PATH,將大大減少您的交互式shell。

  1. 記錄你的腳本stdout/stderr例如myscript 2>&1 >/tmp/script.log
  2. 檢查你的環境是你在腳本
  3. ,此腳本真的做你想做的通過env命令預期?並與您的cron交互如何?如果你的服務沒有運行,你會產生一個新的,但我希望你把它放在後臺,這樣它就成爲一個守護進程而不是一個(大)孩子的進程
  4. 是你的腳本可執行的根據cron執行哪一個用戶?
+0

有沒有錯誤讓我說我運行噓myshell.sh其運行okey和沒有錯誤,並執行直到退出,但如果我把它添加到cron就像每5個薄荷糖運行*/5 * * * */bin/sh /home/www/myshell.sh它只是沒有運行 – Jecki