WatchDog程序

watchdog是什麼?


通俗的叫法“看門狗”,通常可以認爲是一個守護程序,它可以監控單個進程,也可以真個系統的運行狀態,當它監控的程序或系統,在一段時間內(一般情況爲1分鐘)沒有操作後,它就會重新啓動這個程序或者系統。


按照我的想法,watchdog大概可以不規範的分爲兩種:

1、程序級的

2、系統級的


1)程序級的watchdog

   程序級的watchdog,通常指的是監控單個程序,當該程序莫名被殺死,或者該程序由於一些原因(內存不足,空間不足,GC回收等),異常終止時,watchdog程序會嘗試重新啓動該程序,使之能夠正常運行。


2)系統級的watchdog

Linux 自帶了一個 watchdog 的實現,用於監視系統的運行,包括一個內核 watchdog module 和一個用戶空間的 watchdog 程序。

內核 watchdog 模塊通過 /dev/watchdog 這個字符設備與用戶空間通信。用戶空間程序一旦打開 /dev/watchdog 設備,就會導致在內核中啓動一個 1分鐘的定時器,此後,用戶空間程序需要保證在 1分鐘之內向這個設備寫入數據,每次寫操作會導致重新設定定時器。如果用戶空間程序在 1分鐘之內沒有寫操作,定時器到期會導致一次系統 reboot 操作。

用戶空間程序可通過關閉 /dev/watchdog 來停止內核中的定時器。

用戶空間的 watchdog 守護進程:

在用戶空間,還有一個叫做 watchdog 的守護進程,它可以定期對系統進行檢測,包括:

  • Is the process table full?

  • Is there enough free memory?

  • Are some files accessible?

  • Have some files changed within a given interval?

  • Is the average work load too high?

  • Has a file table overflow occurred?

  • Is a process still running? The process is specified by a pid file.

  • Do some IP addresses answer to ping?

  • Do network interfaces receive traffic?

  • Is the temperature too high? (Temperature data not always available.)

  • Execute a user defined command to do arbitrary tests.

如果某項檢測失敗,則可能導致一次 soft reboot (模擬一次 shutdown 命令的執行),也就是我們通常情況下所說的異常重啓。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章