システムの再起動時にいくつかのサービスを実行するために Upstart を使用しています。これらのサービスは常に実行されている必要があります。最終的に一部がクラッシュしたことに気付いたので、(成功せずに) ウォッチドッグ スクリプトを作成しようとしています。
このスクリプトは、サービスのステータスをチェックします。サービスがダウンしている場合は、サービスを開始し、問題についてメールを送信する必要があります。電子メール スクリプトは php にあり、問題ありません。
ウォッチドッグ bash スクリプトの問題は、スクリプトを手動で起動すると、スクリプトを実行してサービスのステータスを読み取ることができることです。スクリプトを実行するために cronjob を使用すると、「空のステータス」出力が得られます。
スクリプトを示します。
#!/bin/bash
# Check the service
status=$(status SERVICE | awk '{print $2}')
echo "Status of the SERVICE: $status"
手動で実行すると、次のようになります。
Status of the SERVICE: stop/waiting
そして、cronjobでそれを実行すると、次のようになります:
Status of the SERVICE:
ご覧のとおり、cronjob でスクリプトを実行しても出力が得られません。つまり、cronjob は実行されていますが、サービスのステータスは提供されません。
あなたの X-vision が、私ができないというエラーを表示できることを願っています。
BR、
アルベルトフ