私はMonitを使用して監視しているプロセスを持っています。何らかの理由でプロセスが停止した場合は、シェルスクリプトを使用してSlack通知を送信し、再起動する必要があります。この動作は "存在しない"ディレクティブでは機能しません。最後のものは実行され、前のものは無視されます。以下のコード例:Monitの2番目の「存在しない」は最初のものを上書きします
check process xyz with pidfile /var/run/xyz.pid
start program = "/etc/init.d/xyz start" with timeout 60 seconds
stop program = "/etc/init.d/xyz stop"
if does not exist then restart
if does not exist then exec "/opt/somescript.sh"
スクリプトを実行しますが、再起動しません。それはドキュメントから、これがどのように動作するかのようにも見えます。これを実現する他の方法。ドキュメントの参照(正確には明らかではないが、実際の動作に似ている):
If not defined, it defaults to a restart action.
You can override the default action with the following statement:
申し訳ありませんが、質問を入力している間に私の側からちょうどタイプミスですが、今修正しました –
ああ、私は参照してください。私は答えを更新しました。おそらく、再起動とスクリプトを代わりに1つのアクションにするのが最適です。 – Ulugbek
私はexecで2つのコマンドを呼び出し、&&で区切っても、最初のものだけを呼び出します。私は場所を変更することでこれをテストしましたが、常に1つのコマンドだけが呼び出されます! –