Linux 軟件看門狗 watchdog運用引見。本站提示廣大學習愛好者:(Linux 軟件看門狗 watchdog運用引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Linux 軟件看門狗 watchdog運用引見正文
背景:
[email protected]:/usr/local/php# ps aux|grep watchdog
root 6 0.0 0.0 0 0 ? S Aug28 4:50 [watchdog/0]
root 10 0.0 0.0 0 0 ? S Aug28 4:11 [watchdog/1]
root 14 0.0 0.0 0 0 ? S Aug28 3:58 [watchdog/2]
root 18 0.0 0.0 0 0 ? S Aug28 3:36 [watchdog/3]
附:
最復雜的裝置教程(CentOS)
yum install watchdog -y
modprobe softdog
chkconfig watchdog on
/etc/init.d/watchdog start
配置看門狗順序,開機自動運轉
chkconfig watchdog on
啟動看門狗
sudo /etc/init.d/watchdog start
Linux 自帶了一個 watchdog 的完成,用於監視零碎的運轉,包括一個內核 watchdog module 和一個用戶空間的 watchdog 順序。內核 watchdog 模塊經過 /dev/watchdog 這個字符設備與用戶空間通訊。用戶空間順序一旦翻開 /dev/watchdog 設備(俗稱“開門放狗”),就會招致在內核中啟動一個1分鐘的定時器(零碎默許時間),爾後,用戶空間順序需求保證在1分鐘之外向這個設備寫入數據(俗稱“活期喂狗”),每次寫操作會招致重新設定定時器。假如用戶空間順序在1分鐘之內沒有寫操作,定時器到期會招致一次零碎 reboot 操作(“狗咬人了”呵呵)。經過這種機制,我們可以保證零碎中心進程大局部時間都處於運轉形態,即便特定情形下進程解體,因無法正常定時“喂狗”,Linux零碎在看門狗作用下重新啟動(reboot),中心進程又運轉起來了。多用於嵌入式零碎。
翻開 /dev/watchdog 設備(“開門放狗”):
int fd_watchdog = open("/dev/watchdog", O_WRONLY); if(fd_watchdog == -1) { int err = errno; printf("\n!!! FAILED to open /dev/watchdog, errno: %d, %s\n", err, strerror(err)); syslog(LOG_WARNING, "FAILED to open /dev/watchdog, errno: %d, %s", err, strerror(err)); }
每隔一段時間向 /dev/watchdog 設備寫入數據(“活期喂狗”):
//feed the watchdog if(fd_watchdog >= 0) { static unsigned char food = 0; ssize_t eaten = write(fd_watchdog, &food, 1); if(eaten != 1) { puts("\n!!! FAILED feeding watchdog"); syslog(LOG_WARNING, "FAILED feeding watchdog"); } }
封閉 /dev/watchdog 設備,通常不需求這個步驟:
close(fd_watchdog);
所需頭文件:
#include <unistd.h> #include <sys/stat.h> #include <syslog.h> #include <errno.h>
關於Linux 軟件看門狗 watchdog的運用就引見到這,有什麼問題可以留言