程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Linux 軟件看門狗 watchdog應用引見

Linux 軟件看門狗 watchdog應用引見

編輯:關於C++

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved