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的應用就引見到這,有甚麼成績可以留言