2011-12-19 2 views
3

を実行されていない場合:送信通知メールのプロセスは、私はcronジョブで実行中のプロセスを確認するには、次のシェルスクリプトを使用しています

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

結果が空の場合、私はその後、(プロセスではないという意味電子メールを送信する必要があります実行中)、これをどのようにスクリプト化するのですか?

+4

このような "grep -v" grep "' 'ダンスを避けることができます:' 'ps -ef | grep '[m] yprocess''' – holygeek

答えて

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

+1

'ps'の出力形式に依存しますが、そうではありません。 grepの終了コードを確認する方が良いでしょう: 'ps -ef | grep '[m] yprocess'>/dev/null ||エコー件名:myprocessが死亡しました|あなたは 'sendmail – tripleee

関連する問題