[解決済み] monitのデバッグ
2023-07-30 22:29:57
質問
Monitのデバッグに苦労しています。Monit のシェル環境には基本的に何もありません(パスやその他の環境変数がありません)。また、私が見つけることができるログ ファイルもありません。
問題は、monit スクリプトの start または stop コマンドが失敗した場合、何が問題なのかを見極めるのが難しいということです。多くの場合、シェル環境と monit のシェル環境は異なるため、シェル上でコマンドを実行するだけという単純なものではありません。
monitの設定をデバッグするために、どのようなテクニックを使っているのでしょうか?
例えば、自分のスクリプトをテストするためのmonitシェルや、何がうまくいかなかったかを確認するためのログファイルがあればうれしいです。
どのように解決するのですか?
私も同じような悩みを抱えていました。monitのverboseコマンドラインオプションを使うと少しは楽になりますが、一番良い方法は、monitの環境にできるだけ近い環境を作り、そこから起動・停止プログラムを実行することだとわかりました。
# monit runs as superuser
$ sudo su
# the -i option ignores the inherited environment
# this PATH is what monit supplies by default
$ env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/sh
# try running start/stop program here
$
最も一般的な問題は、環境変数に関連するものであることがわかりました(特に
PATH
) やパーミッションに関連するものです。monitは通常rootで実行されることを覚えておく必要があります。
また、もしあなたが
as uid myusername
を使用している場合は、monit の設定でユーザー
myusername
に変更してからテストしてください。
お役に立てれば幸いです。
関連
-
[解決済み] Visual Studioでコマンドラインパラメータを使ったデバッグを行う
-
[解決済み】シェルスクリプトでファイルが存在するかどうかを確認する方法
-
[解決済み] gdb: 現在の行を表示したり、現在の行番号を見つけるには?
-
[解決済み] GDBで関数の戻り値を調べるには?
-
[解決済み] スクラムプロセスにバグフィックスを組み込むベストな方法とは?[クローズド]
-
[解決済み] デバッグ中にDataTableを表示する方法
-
[解決済み] scala のコードを任意の場所に配置した状態でインタプリタにドロップする。
-
[解決済み] GDBで前の行に移動するには?
-
[解決済み] golangの対話型デバッガは存在するのか?[クローズド]
-
[解決済み] 好きな言語を選んでください] のプログラム中のすべての変数を列挙してください [終了]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] デバッガとは何ですか、またデバッガはどのように問題の診断に役立ちますか?
-
[解決済み] GDBで関数の戻り値を調べるには?
-
[解決済み] Angular JavaScriptコードのデバッグ方法
-
[解決済み] デバッグシンボル付きでコンパイルされたかどうかを確認する方法は?重複
-
[解決済み] スクラムプロセスにバグフィックスを組み込むベストな方法とは?[クローズド]
-
[解決済み] デバッグ中にDataTableを表示する方法
-
[解決済み] scala のコードを任意の場所に配置した状態でインタプリタにドロップする。
-
[解決済み] GDBで前の行に移動するには?
-
[解決済み] golangの対話型デバッガは存在するのか?[クローズド]
-
[解決済み] 好きな言語を選んでください] のプログラム中のすべての変数を列挙してください [終了]。