再起動すると、次のエラーメッセージが表示されることがよくあります。
kernel: watchdog watchdog0: watchdog did not stop!
ウォッチドッグを実行して詳細を調べようとしましたが、man watchdog
手動入力がないと思います。試してみましたが、yum list watchdog
インストールできませんでした。しかし、/dev
ディレクトリを見て、実際には2つの監視装置を見つけました。
watchdog
そしてwatchdog0
気になりました。私は本当に監視犬を所有していますか?再起動してもカーネルが停止しないと文句を言うのはなぜですか?
答え1
ほとんどの最新のPCハードウェアには監視タイマー機能が含まれています。ここでWikipediaを通してこれについての詳細を読むことができます。監視タイマー。また、Linuxカーネルドキュメントでは:
抜粋https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt
WDT(ウォッチドッグタイマー)は、ソフトウェアエラーが発生したときにコンピュータシステムをリセットするハードウェア回路です。おそらくあなたはすでにこれを知っているでしょう。
通常、ユーザー空間デーモンは/dev/watchdog特殊デバイスファイルを介して、ユーザー空間がまだアクティブであることをカーネル監視ドライバに定期的に通知します。これらの通知が発生すると、ドライバは通常、ハードウェア監視デバイスにすべてが正常であることを知らせ、監視デバイスはシステムをリセットするためにしばらく待つ必要があります。ユーザースペースにエラーがある場合(RAMエラー、カーネルエラーなど)、通知の発生が停止し、ハードウェア監視はタイムアウト(再起動)後にシステムをリセットします。
Linux ウォッチドッグ API は、異なるドライバーが異なっており、時には互換性のない部分を実装する幾分特殊な構造です。このファイルは既存の使用法を文書化し、将来のドライバー作成者がそれを参照として使用できるようにします。
この質問と回答は次のとおりです。Linuxでハードウェア監視機能を更新する人は誰ですか?、Linuxカーネルとハードウェア監視タイマー間の接続をカバーします。
ウォッチングパックはどうですか?
IMO、RPMの説明は非常に明確です。このwatchdog
デーモンはソフトウェア監視として機能したり、ハードウェア実装と対話したりできます。
監視プログラムは、強力なソフトウェア監視デーモンとして使用することも、常駐ベースボード管理コントローラ(BMC)とインタフェースするIPMIハードウェア監視ドライバなどのハードウェア監視デバイスと互換性があります。 watchdog は /dev/watchdog に定期的に書き込みます。 / dev / watchdogに書き込む間隔は、watchdog sysconfigファイルの設定で設定できます。
この設定ファイルは、ウォッチドッグをデフォルトのソフトウェアウォッチドッグ操作の代わりにハードウェアウォッチドッグに設定するためにも使用されます。どちらの場合も、デバイスの電源が入っているが設定された期間内に記録されない場合、監視タイマーの有効期限が切れてシステムの再起動がトリガされます。ソフトウェアウォッチドッグで実行すると、再起動機能はマシンの状態と割り込みによって異なります。
ハードウェア監視で実行されると、システムはBMC(または監視タイマーの有効期限が切れたときに実行されるように構成されたすべてのタスク)によって開始されたハードリセットを受けます。
答え2
参考までにドキュメントを検索するには、次の手順を実行できます。
man -k watchdog
少なくとも名前またはタイトル/説明にその単語を使用するすべてのマニュアルがコンソールに表示されます。多くのオプションを期待する場合は、次のようにless
使用することをお勧めします。
man -k watchdog | less
しかし、私たちの場合、おそらく2〜3個以上のアイテムを手に入れることはできません。
wdctl
これにより、ウォッチドッグの現在の状態/設定を表示できるユーティリティが表示されます。以下は、私が使用しているJetsonボードの1つの例です。
$ wdctl
Device: /dev/watchdog
Identity: Tegra WDT [version 1]
Timeout: 120 seconds
Pre-timeout: 0 seconds
FLAG DESCRIPTION STATUS BOOT-STATUS
KEEPALIVEPING Keep alive ping reply 0 0
MAGICCLOSE Supports magic close char 0 0
SETTIMEOUT Set timeout (in seconds) 0 0
Timeout
このエントリは、自動再起動を強制する前にウォッチドッグが待機する時間を知らせることを示しています。
最新バージョンのLinuxでは、これはこれを介して行われますsystemd
。/etc/systemd/system.conf
複数のパラメータが見つかる場所を確認してください(通常はデフォルトでコメントアウトされています)。
[Manager]
...
#RuntimeWatchdogSec=0
#ShutdownWatchdogSec=10min
...
メモ:より便利な場合は、apropos
代わりにコマンドラインツールを使用することもできます。この場合は必要ありませんが、man -k
同じことを行います。-k
apropos watchdog
デフォルトでは、キーワード(watchdog
この場合)は正規表現でもかまいません。