WATCHDOGD(8) | FreeBSD System Manager's Manual | WATCHDOGD(8) |
名称
watchdogd — ウォッチドッグデーモン書式
watchdogd | [ -dnSw][ --debug][ --softtimeout][ --softtimeout-action action][ --pretimeout timeout][ --pretimeout-action action][ -e cmd][ -I file][ -s sleep][ -t timeout][ -T script_timeout] |
解説
watchdogd ユーティリティは、システムが動作状態にあることを保証するためにカーネルのウォッチドッグ機能とインタフェースをとります。 watchdogd が特定のタイムアウト上でカーネルとのインタフェースをとることができないなら、カーネルは、コンピュータをデバッグするか、再スタートすることを助けるための処置を取ります。-e cmd が指定されるなら、 watchdogd は、 system(3) でこのコマンドを実行することを試み、コマンドが 0 終了コードで返る場合のみウォッチドッグは、リセットされます。 -e cmd が指定されないなら、デーモンは、代わりに通常のファイルシステムチェックを実行します。
-n 引数 'dry-run' によって、ウォッチドッグは、システムウォッチドッグを作動可能にせず、代わりに、ウォッチドッグ機能のみを実行し、失敗時に報告します。これは、スクリプトに問題があるなら、システムがリブートしないように、新しい watchdogd スクリプトを開発するために役に立ちます。
-s sleep 引数は、チェックの各実行の間でスリープ期間を制御するために使用することができます、デフォルトは、1 秒です。
-t timeout は、秒単位で必要なタイムアウトの期間を指定します。デフォルトのタイムアウトは、16 秒です。
ウォッチドッグタイムアウトを引き起こす 1 つのあり得る状況は、割り込みストーリムです。これが起こるなら、 watchdogd は、もはや実行しないで、その結果カーネルのウォッチドッグルーチンは、設定可能なタイムアウトの後で処置します。
-T script_timeout は、watchdogd が、そのスクリプトがあまりにも長い間実行したとエラーを出す、しきい値を (秒単位で) 指定します。設定されていないなら、 script_timeout は、 -s sleep オプションによって指定された値をデフォルトとします。
SIGTERM または SIGINT シグナルを受信すると、 watchdogd は、最初にもはやウォッチドッグチェックを実行しないようにカーネルに指示し、そして、終了します。
watchdogd ユーティリティは、次の実行時オプションを認識します:
- -I file
- 指定されたファイルに watchdogd ユーティリティのプロセス ID を書き込みます。
- -d --debug
- フォーク (fork) しません。このオプションが指定されるとき、 watchdogd は、始動時に、バックグラウンドにフォークしません。
- -S
- ウォッチドッグコマンドが実行するために予想されたより長くかかるなら、システムのログ記録プログラム (logger) にメッセージを送りません。デフォルトの振る舞いは、LOG_DAEMON 機能があるシステムのログ記録プログラム (logger) を通して警告をログ記録し、標準エラーに警告を出力することです。
- -w
- ウォッチドッグのスクリプトがあまりにも長くかかるとき、エラーを出します。このフラグによって watchdogd は、ウォッチドッグのスクリプトを実行する時間が 'sleep' オプションのしきい値を越えるとき、エラーを出します。
- --pretimeout timeout
- "pretimeout"ウォッチドッグを設定します。ウォッチドッグがアクションの開始を試みる前の "タイムアウト"秒。アクションは、--pretimeout-action フラグによって設定されます。デフォルトは、 log(9) によってメッセージ (WD_SOFT_LOG) を単にログ記録することです。
- --pretimeout-action action
- pretimeout のためのタイムアウトアクションを設定します。セクション 「タイムアウトアクション」 を参照してください。
- --softtimeout
- 様々なハードウェアのウォッチドッグを作動可能にする代わりに、基本ソフトウェアウォッチドッグだけを使用します。デフォルトのアクションは、メッセージ (WD_SOFT_LOG) を単に log(9) (ログ記録) することです。
- --softtimeout-action action
- softtimeout のためにタイムアウトアクションを設定します。セクション 「タイムアウトアクション」 を参照してください。
タイムアウトアクション
次のタイムアウトアクションは、 --pretimeout-action と --softtimeout-action フラグによって利用可能です:- panic
- タイムアウトに到達するとき、 panic(9) を呼び出します。
- ddb
- タイムアウトに到達するとき、 kdb_enter(9) によってカーネルデバッガに入ります。
- log
- タイムアウトに到達するとき、 log(9) を使用してメッセージをログ記録します。
- printf
- コンソールと dmesg(8) バッファへのメッセージを表示するためにカーネル printf(9) を呼び出します。
次のようにコンマで区切られたリストでアクションを組み合わせることができます: log,printf は、 printf(9) と log(9) の両方を実行し、 log(9) は、 dmesg(8) と syslog(8) のためのカーネル log(4) デバイスの両方にメッセージを送ります。
関連ファイル
- /var/run/watchdogd.pid
使用例
watchdogd および利用者のウォッチドッグスクリプトのデバッグ
これは、 watchdogd と利用者のウォッチドッグスクリプトをデバッグするための役に立つ方策です。( watchdogd は、 system(3) を呼び出し、それで、最初の ^C が "sleep"コマンドを終了するので、^C は、奇数で動作することに注意してください。)
オプションの説明は、次を使用します:
- デバッグをオンに設定します (--debug)
- ウォッチドッグを 30 秒で外すように設定します。
- softtimeout の使用:
- 事前タイムアウトの使用:
- スクリプトの使用:
- ウォッチドッグ (-e 'sleep 60') として動作するシェルコマンドとして "sleep 60"を実行します
- スクリプトが実行するために (-w) 1 秒より長くかかるとき、警告します
watchdogd --debug -t 30 \ --softtimeout --softtimeout-action log,printf \ --pretimeout 15 --pretimeout-action log,printf \ -e 'sleep 60' -w
使用例の生産的使用
- ハードのタイムアウトを 120 秒 (-t 120) に設定します
- (ダンプ解析のために crash(8) を引き起こすために) 60 秒でパニックを起こるように設定します:
- 事前タイムアウトの使用 (--pretimeout 60)
- 事前タイムアウトのアクションを指定します (--pretimeout-action log,printf,panic )
- スクリプトの使用:
- 利用者のスクリプトを実行する (-e '/path/to/your/script 60')
- 利用者のスクリプトが実行時に 15 秒より長くかかるならログを記録します。 (-w -T 15)
watchdogd -t 120 \ --pretimeout 60 --pretimeout-action log,printf,panic \ -e '/path/to/your/script 60' -w -T 15
歴史
watchdogd ユーティリティは、 FreeBSD 5.1 で登場しました。作者
watchdogd ユーティリティとマニュアルページは、 <smkelly@FreeBSD.org>と <phk@FreeBSD.org>によって書かれました。いくつかの貢献が
<jeff@FreeBSD.org>によって行われました。pretimeout と softtimeout アクションシステムは、
<alfred@freebsd.org>によって追加されました。July 27, 2013 | FreeBSD |