2011-12-19 82 views
3

我使用下面shell腳本檢查正在運行的進程在cron作業:發送通知電子郵件,如果進程不運行,

 
ps -ef|grep myprocess|grep -v "grep" 

然後我需要的,如果結果爲空,發送電子郵件(指過程並不運行),我該如何編寫腳本?

+4

可以避開''grep的-v 「grep的」''跳舞是這樣的:''PS英法| grep的「[M] yprocess''' – holygeek 2011-12-19 05:28:22

回答

6

一個解決方案:

pgrep processname &>/dev/null && exit 0 
echo |mail -s"Aiie, process processname not running!" [email protected] 

然後把它放到一個crontab像已經建議。當然,這意味着你必須安裝mail命令。

1

你能做到這樣

PROCESS_FOUND=`ps -ef|grep myprocess|grep -v grep` 
if [ "$PROCESS_FOUND" = "" ] 
then 
    #send mail from here ...Process not running 
fi 
+0

我嘗試過同樣和它的作品完美的我。 – Raghuram 2011-12-19 06:48:36

+1

取決於'ps'的輸出格式,而不是。最好檢查grep的退出代碼:'ps -ef | grep'[m] yprocess'>/dev/null ||回聲主題:myprocess死亡| sendmail你' – tripleee 2011-12-20 06:55:31

相關問題