3

monit の「チェック プログラム」を使用して bash スクリプトの終了ステータスをチェックしようとすると、構文エラーが発生します。bash スクリプトを手動で実行してもエラーにはなりません。しかし、設定で monit チェック プログラムを使用して monit reload を実行すると、monit でエラーが発生します。

これが私の現在のmonit .confファイルです-

check program myscript with path "/etc/monit.d/script_to_run.sh"
  if status != 0 then alert

これをこれに変更して、monitがbashを使用してファイルを解析するようにすると...

check program myscript with path "/usr/bash /etc/monit.d/script_to_run.sh"
  if status != 0 then alert

次に、このエラーが発生します

Warning: Program does not exist: '"/bin/bash /etc/monit.d/script_to_run.sh"'

テスト スクリプトでさえエラーになります -- script_to_run.sh にこれがある場合:

#!/bin/bash
exit 0

モニターは文句を言います

Error: syntax error 'exit'

script_to_run.sh にこれがある場合:

#!/bin/bash
echo "hello"

モニターは文句を言います

Error: syntax error 'echo'

参考までに-私はmonit 5.4を使用しており、man monit docの「チェックプログラム」の例に従っており、同じサーバーでmonit「チェックプロセス...」を正常に構成/使用できます。

4

2 に答える 2

7

わかりました。これを読んでいる人のための将来の参考のために-.shファイルを/etc/monit.d/に置かないでください

それが問題でした。.sh ファイルを別のディレクトリに移動したところ、すべてが正常になりました。

于 2013-06-17T19:03:51.250 に答える