私にウォッチドッグがありますか?

私にウォッチドッグがありますか?

再起動すると、次のエラーメッセージが表示されることがよくあります。

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デーモンはソフトウェア監視として機能したり、ハードウェア実装と対話したりできます。

RPMの説明から抜粋

監視プログラムは、強力なソフトウェア監視デーモンとして使用することも、常駐ベースボード管理コントローラ(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この場合)は正規表現でもかまいません。

関連情報