プロセスが実行されていない場合に通知メールを送信する

私は次のシェルスクリプトを使用して、cronジョブで実行中のプロセスをチェックしています。

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

結果が空の場合(プロセスが実行されていないことを意味する)、電子メールを送信する必要があります。

3
ps -ef | grep '[m] yprocess' のように grep -v "grep ダンスを避けることができます。
追加された 著者 holygeek,

2 答え

1つの解決策:

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

次に、すでに提案されているようなcrontabに入れます。もちろん、 mail コマンドがインストールされている必要があります。

6
追加された

あなたはこのようにすることができます

PROCESS_FOUND=`ps -ef|grep myprocess|grep -v grep`
if [ "$PROCESS_FOUND" = "" ]
then
    #send mail from here ...Process not running
fi
1
追加された
ps の出力形式に依存します。 grepの終了コードを確認する方が良い: ps -ef | grep '[m] yprocess'>/dev/null ||エコー件名:myprocessが死亡しました| sendmailあなた
追加された 著者 tripleee,
私は同じことを試して、それは私のために完全に動作します。
追加された 著者 Raghuram,