こんにちは
ソフトな道をほのぼのと今日も歩きます。
今回は、LinuxアプリからWatchdog タイマを再設定した時に
”watchdog watchdog0: watchdog did not stop!”
メッセージが出力されました。
その調査・対応について記載してみたいと思います。
このメッセージはターミナル上にwatchdogタイマ再設定の都度
出てくるので、ターミナルは大量のメッセージで埋め尽くされてしまいます。
このメッセージをカーネルソース内で以下のコマンドにて検索しました。
"grep "watchdog did not stop" -ir ./パス"
検索した結果
drivers/watchdog/
下のソースにヒットしました。
メッセージ出力はエラーに転んだ時に出力するようになっていました。
→ カーネルを直すのもいいのですが、上位側(アプリケーション)
でエラーがないように扱うのが筋のような気がしました。
そして、色々調べてわかったのは
アプリ内で
fd= open("/dev/watchdog", O_WRONLY);
を再設定する際に毎回実行していましたが、このopen()が入ってくると
毎回上記メッセージが出ます。
そこで、open("/dev/watchdog", O_WRONLY);は起動時の一回だけにして
後は開きっぱなしの状態(close()しないということです)で値を書き込む。
といった方法にしてみたら
上記メッセージは出なくなりました。
今日のひとこと
東京は6/1から緊急事態宣言解除になる話が出ています。
もしそうなったら、出勤者であふれかえってしまいます。
ただ、首都圏以外が5/22に解除されたとのことなので
その10日後の6/1で再発して
やはり緊急事態解除はやめよう。なんてことになるんじゃないかと
予想します。
良い意味で外れることを願います。
0 件のコメント:
コメントを投稿