C 製作簡單的看門狗程式

2021-07-12 06:14:17 字數 2490 閱讀 7779

這個類實現了程式退出能重啟,但是程式停止執行彈出對話方塊,程序並沒有退出卻無法重啟。希望有好建議處理這個bug的朋友提出你們的寶貴意見。

原始碼如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.diagnostics;

using system.threading;

using system.runtime.interopservices;

public

class processwatcher

}if (count == 0) return

0; if (count == processpath.length) return

1; return

2; }

////// 啟動守護

/// ///

///等待時間

///public

intwatchstart(int sleeptime)

////// 關閉守護

//////

public

intwatchstop()

catch

return

0; }

////// 守護執行緒,死迴圈

///private

void

watch()

}thread.sleep(watchwaitingtime*1000);}}

////// 全部重啟,如果已經啟動則先關閉

///public

void

startall()

}///

/// 關閉所有守護程序

///public

void

stopall()

}///

/// 程序狀態

/// 1 顯示介面

/// 2 影藏介面

/// 3 重啟

/// 4 停止

//////

///public

void

setprocessstate(int state,string name)

break;}}

}///

/// 判斷某個執行緒是否存在

//////

執行緒名字

///public boolean processisalive(string name)

}return

false;

}///

/// 顯示窗體

//////

窗體控制代碼

///0 隱藏,1顯示

/// [dllimport("user32.dll", entrypoint = "showwindow", setlasterror = true)]

static

extern

bool showwindow(intptr hwnd, uint ncmdshow);

public

class myprocess

////// 程序名字

///public

string name

}///

/// 程序路徑

///public

string path

}///

/// 程序狀態

//////

public boolean isalive()

//catch

// }

////// 啟動,如果已經啟動,則關閉後再啟動

///public

void

start()

////// 關閉

///public

void

stop()

catch

}///

/// 顯示

///public

void

show()

else}}

////// 隱藏

///public

void

hide()

}///

/// 獲取程序

//////

private process process()

return

null;

}///

/// 鎖

///readonly

static readerwriterlockslim _rw = new readerwriterlockslim();

////// 寫日誌檔案

//////

public

static

void

writelog(string str_msg)}}

}

簡單看門狗

watch dog 設計原因 為了在系統異常的時候可以讓系統重啟復位 看門狗實際上是個定時器,系統正常的時候會定時給定時器復位,當系統異常的時候定時器沒有復位,到點了就傳送reset訊號然後把整個系統給reset了。為什麼要關掉watch dog?為什麼要關看門狗?一般cpu設計,在cpu啟動後看門...

linux簡單易用的看門狗程式

看門狗程式是通過 餵狗 的形式不停的給watchdog寫入資料,一旦在一定的時間內沒有寫入,watchdog就會認為程式發生了崩潰,它能夠直接出發晶元復位,讓linux系統進行重啟。在實際的專案中具有重要的作用。void feed watchdog int timeout 20 ioctl wd f...

python實現的看門狗程式

看門狗通常是用於監控程序是否結束,如果被監控程序結束則會被重啟。如下 import os,subprocess,shlex,sys print 輸入要啟動的程序的名字 包括路徑 commandline input args shlex.split commandline while true pri...