Linux 自帶了一個(gè) watchdog 的實(shí)現(xiàn),用于監(jiān)視系統(tǒng)的運(yùn)行,包括一個(gè)內(nèi)核 watchdog module 和一個(gè)用戶(hù)空間的 watchdog 程序。內(nèi)核 watchdog 模塊通過(guò) /dev/watchdog 這個(gè)字符設(shè)備與用戶(hù)空間通信。用戶(hù)空間程序一旦打開(kāi) /dev/watchdog 設(shè)備(俗稱(chēng)“開(kāi)門(mén)放狗”),就會(huì)導(dǎo)致在內(nèi)核中啟動(dòng)一個(gè)1分鐘的定時(shí)器(系統(tǒng)默認(rèn)時(shí)間),此后,用戶(hù)空間程序需要保證在1分鐘之內(nèi)向這個(gè)設(shè)備寫(xiě)入數(shù)據(jù)(俗稱(chēng)“定期喂狗”),每次寫(xiě)操作會(huì)導(dǎo)致重新設(shè)定定時(shí)器。如果用戶(hù)空間程序在1分鐘之內(nèi)沒(méi)有寫(xiě)操作,定時(shí)器到期會(huì)導(dǎo)致一次系統(tǒng) reboot 操作(“狗咬人了”呵呵)。通過(guò)這種機(jī)制,我們可以保證系統(tǒng)核心進(jìn)程大部分時(shí)間都處于運(yùn)行狀態(tài),即使特定情形下進(jìn)程崩潰,因無(wú)法正常定時(shí)“喂狗”,Linux系統(tǒng)在看門(mén)狗作用下重新啟動(dòng)(reboot),核心進(jìn)程又運(yùn)行起來(lái)了。多用于嵌入式系統(tǒng)。
打開(kāi) /dev/watchdog 設(shè)備(“開(kāi)門(mén)放狗”):
所需頭文件:
聯(lián)系客服