systemdを使用してハードウェア監視の状態を確認するには?
util-linux
一部の情報を印刷するコマンドを使用できますが、常に機能するわけではwdctl
ありません(例:Raspberry Pi 3以降)。 Pi3を例にしてみましょう。
# wdctl /dev/watchdog0
wdctl: cannot read information about /dev/watchdog0: No such file or directory
# wdctl /dev/watchdog
wdctl: cannot read information about /dev/watchdog: No such file or directory
しかし、監視装置が有効になっているようです。
# dmesg | grep watchdog
[ 6.985782] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[ 17.190956] systemd[1]: Using hardware watchdog 'Broadcom BCM2835 Watchdog timer', version 0, device /dev/watchdog
[ 17.206391] systemd[1]: Set hardware watchdog to 15s.
もしそうなら、ハードウェア監視の現在の状態とsystemd自体がそれを実行していることを示すために使用できるsystemd固有のコマンドはありますか?
以前の監視サービスは適用されなくなりました。これは、systemdがネイティブハードウェア監視サポートを受ける前だったためです。
# systemctl status watchdog
Unit watchdog.service could not be found.
wdctl
ウォッチドッグタイマーが有効になっている場所、使用中の場所、現在のタイムアウトがどのように設定されているかなどの情報を提供するコマンドを実行しています。一種のsystemctl list-timers
ハードウェアウォッチャー用です。
答え1
Watchdogは特別なデバイスです。これは、報告されたwdctl出力について説明します。
ただし、すべての監視デバイスはその設定を/ sysにエクスポートします。
その後、/sys/class/watchdog/* にあります。
コマンドが欲しいなら、それがgrep . /sys/class/watchdog/*/*
必要なことをしますか?
答え2
私も同じ考えをして、似たような質問を検索してみた結果、次のような結論を得ました。
sudo strace -t -e ioctl -p1 | grep WDIOC_KEEPALIVE
タイムアウト間隔の途中に次のような内容が表示されます。
01:15:47 ioctl(9, WDIOC_KEEPALIVE) = 0
...
これは、プロセスのすべてのioctl呼び出しをstrace
監視pid 1
()し、それをフィルタリングするために使用されます。 systemd は、監視ハードウェアを「ping」して再起動を防ぐために使用されます。systemd init
WDIOC_KEEPALIVE
WDIOC_KEEPALIVE