Linuxの備忘録とか・・・(目次へ)Linuxの備忘録とか・・・(目次へ)watchdogwatchdogはシステムが停止した時に、リブートさせるものです。タイマによる定期的なチェックのため、その実装はシステム依存です。ここでは、システムに依存しないソフトドッグと称するwatchdogについてです。softdogドライバをinsmodすると、miscデバイスとして/dev/watchdogのキャラクタデバイスファイルが作成され、open/writeすることでwatchdogが作動します。(closeしても作動し続けます。writeする内容は任意で、Vのみwatchdogを停止させます。停止はwriteしたタイミングでなく、/dev/watchdogをクローズしたタイミングとなります。insmodの引数として、soft_margin=はタイマ周期(デフォルトは60秒)、nowayout=はV書き込みでのwatchdogを停止させるかどうか設定で、CONFIG_WATCHDOG_NOWAYOUTのコンパイル時、デフォルトは停止できません。register_reboot_notifier()は、reboot_notifier_listにsoftdog_notifierをリストされ、システムが再起動させる前に.notifier_callがコールされます。NOTIFY_DONE;}/dev/watchdogをオープンした瞬間に、watchdogが作動します。mod_timer()は、soft_margin秒周期にwatchdog_fire()をコールすることになり、emergency_restart()でシステムをリブートします。}}/dev/watchdogをwriteする事で、softdog_keepalive()し、改めてwatchdog_ticktockをリストを更新します。42とし、/dev/watchdogのclose()時、タイマリストからwatchdog_ticktockコールバックを削除します。len;}ioctlでwatchdogの属性の取得および周期時間の設定ができます。nowayout=0により、writeでのV書き込みでのwatchdog停止ができなくても、WDIOC_KEEPALIVEコマンドで可能となります。42なら、softdog_stop()でタイマーリストからwatchdog_ticktockを削除します。0;}補足watchdog_fire()のsoft_noboot/soft_panicは、insmodパラメータで、以下に定義されています。0);WDIOC_GETSTATUS/WDIOC_GETBOOTSTATUSはハードwatchdogシステム依存です。ノースAdsense広告情報が設定されていません。