今すぐモニターを学び始めました。マニュアルページで以下を見つけました。
Monitの動作は、コマンドラインオプションと実行制御ファイル〜/ .monitrcによって制御されます。その構文は後のセクションで説明します。コマンドラインオプションは.monitrc宣言をオーバーライドします。
次の内容で.monitrcファイルを生成してテストしたときにエラーが表示され、変更されましたが、すべてがうまくいきます。
➜ brt_client git:(master) ✗ monit -t
/home/jgu/.monitrc:2: Warning: Program does not exist: 'echo'
➜ brt_client git:(master) ✗ vim ~/.monitrc
➜ brt_client git:(master) ✗ vim ~/.monitrc
➜ brt_client git:(master) ✗ monit -t
➜ brt_client git:(master) ✗
しかし、これを行うと、service monit restart
次のような結果が得られます。
➜ brt_client git:(master) ✗ service monit restart
* Stopping daemon monitor monit [ OK ]
* Starting daemon monitor monit empty config, please edit /etc/monit/monitrc.
だから/etc/init.d/monitのコードをチェックし、次のことを見つけました。
CONFIG="/etc/monit/monitrc"
monit_check_config () {
# Check for emtpy config.
if [ "`grep -s -v \"^#\" $CONFIG`" = "" ]
then
echo "empty config, please edit $CONFIG."
exit 0
fi
}
したがって、私の記憶が正しい場合、このプログラムは-cや他のフラグを使用しません。ログインを確認しましたが、/var/log/monit.log
表示されず再起動しました。もちろん、スクリプトによると、単にゼロで終了します(なぜゼロで終了するのですか?)。
そのため、ファイルを確認してみると読み取り権限がないことがわかりました/etc/monit/monitrc
。したがって、moinitのsudo権限を取得して再試行してください。大丈夫。
今、本当の質問が出てきます。
/etc/monit/monitrc で "include ~/.monitrc" のような "~/.monitrc" に関連するエントリが見つかりませんでした。 conf.dのディレクトリのみが含まれています。 monitはどのように家にロードするのか分かりますか?ディレクトリ.monitrc? (魔法を使いますか?)
私がログアウトし、彼のアカウントで自分のコンピュータにログインすると仮定すると、私の設定は彼にまったく機能しないという意味ですか?
しかし、このようなことがmonit reload
起こるでしょうか? (再ロードされない場合は、~/.monitrcを実行し続ける必要があります)
答え1
ユーザーのホームディレクトリにあるファイルは通常、一部のユーザー固有のデフォルトを.*rc
提供するために使用されますが、システムレベルのデフォルトは通常同じ*rc
アプリケーションのファイルに提供されます。/etc
man monit
あなたにこれを言うべきです:
~/.monitrc
基本実行制御ファイル
/etc/monitrc
このファイルは、制御ファイルがデフォルトの場所になく、そのファイルが/etc
含まれている場合に使用されます。monitrc
./monitrc
このファイルは、最初の2つの場所で制御ファイルが見つからず、現在の作業ディレクトリにmonitrcファイルが含まれている場合に使用されます。
しかし、あなたが言うのはあなたの場合はデフォルトの実行制御ファイルではないので、開発者がマニュアルページに書いたものとは異なる偏差があるかもしれません/etc/monit/monitrc
(/etc/monitrc
またはマニュアルページが古くなっているか、あなたの質問かもしれません。ファイルパスが正しくありません)。
サービスとして実行されるコンテキストでは、上記のmonit
内容は、デフォルトで.monitrc
サービスが実行されているユーザーのホームディレクトリにファイルを保存し、そのファイルが見つからない場合/etc
。