2017-12-15 11 views
0

私たちは、monitを通してsidekiqプロセスを監視しています。 sidekiqプロセスが約2 GBのメモリに達すると、プロセスを再開します。 90秒のtiemoutで開始および終了プログラムが定義されています。しかし、停止プログラムは失敗しています(90秒のタイムアウトを待ってから)。monitがプロセスを再起動しているときに、monit stopプログラムをキャプチャする方法はありません

これはサンプルのmonit構成です。

check process sidekiq 
    with pidfile /pathtopidfile 
    start program = "/bin/sh -c start sidekiq commmand" with timeout 90 seconds 
    stop program = "stop sidekiq command" with timeout 90 seconds 
    if totalmem is greater than 2GB for 3 cycles then restart 
    ***## I need have some condition like this -> if "stop_program failed" then "do some action"*** 
end 

私は停止プログラムを取得するための正しい構文を知らないP.Sは..私はMONITのブログをチェックしますが、私はできなかったMONITに失敗しました。

+0

こんにちは、このような機能はMonitにはないと思います。通常、init/service/daemonスクリプトはタイムアウトを処理し、対応するアクションを実行します。あなたの停止スクリプトをタイムアウトにカスタマイズして行動自体を取るのではなく、私はMonitレベルのどんなきれいな解決策も予見できません。 – TheCodeKiller

+0

@TheCodeKiller - >あなたのコメントをありがとう。私はあなたが問題を解決するように提案したのと同じやり方をしました。私は停止スクリプトをカスタマイズしました(タイムアウト内で停止しないと、sidekiqプロセスを強制終了させます)。 – Karthy

答えて

0

私は、停止プログラムまたは起動プログラムの失敗をキャプチャするためのオプションはありません。だから私たちはそれぞれのプログラム自体でこれらの失敗事例を処理しなければなりません。私の停止プログラムが失敗している場合は、なぜそれが失敗しているのかを見つけ出し、停止プログラム自体に対応する行動をとらなければならないと言います。

私の元々の問題は、サイドキープロセスがタイムアウト内に殺されていないということでした。そのため、停止プログラムが失敗しました。この問題を解決するために、停止プログラムで、sidekiqプロセスがタイムアウト内に強制終了されなければ、プロセスを強制終了させるようにしました。

+0

追加情報を追加するには、あなたの質問に編集リンクを使用してください。回答を投稿するボタンは、質問に対する完全な回答のためだけに使用してください。 - [レビューの投稿](/レビュー/低品質の投稿/ 18711012) – diceler

+0

これは質問に対する回答ではありません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューから](/レビュー/低品質の投稿/ 18711012) –

関連する問題