我想找到一種方法來監視進程。如果進程沒有運行,應該再次檢查以確保它確實崩潰。如果真的應聲運行的腳本(start.sh)檢查進程是否運行,如果不執行script.sh
我曾嘗試的monit沒有更迭,我也試圖在crontab中添加此腳本:我做到了可執行使用chmod + X monitor.sh
實際程序被稱爲program1
case "$(pidof program | wc -w)" in
0) echo "Restarting program1: $(date)" >> /var/log/program1_log.txt
/home/user/files/start.sh &
;;
1) # all ok
;;
*) echo "Removed double program1: $(date)" >> /var/log/program1_log.txt
kill $(pidof program1 | awk '{print $1}')
;;
esac
問題是這個腳本不起作用,我將它添加到crontab並將它設置爲每2分鐘運行一次。如果我關閉該程序,它將不會重新啓動。
是否有任何其他方式來檢查進程,並在崩潰時運行start.sh?
是的,要做到這一點的方法是使用像monit這樣的監控工具或其他十幾種這樣的工具。如果你不能使用它(並且不想向**尋求幫助,那麼這個腳本如何不起作用?腳本是做什麼的? – 2014-11-24 19:08:34
運行'supervisor'或類似的東西,沒有理由以重建輪/ NIH綜合徵 – Wrikken 2014-11-24 19:08:35
一個可能的直接答案是將nohup命令放在命令前面以運行該腳本:nohup /home/user/files/start.sh& - 其他海報是正確的,有很好的方法去做你想做的事。 – 2014-11-24 20:53:16