如果軟體要實現以下功能 要用什麼編程語言編寫比較合適?

內容:一些重要的程序必須讓它一直運行(比如視頻監控系統伺服器主程序),由於某些程序在試運行階段的不穩定性,或者遇到突發情況而終止運行,此時需要看門狗程序實時監控該重要程序的運行情況,並進行相應的處理。

設計要求

(1)看門狗程序運行時不出現界面,製作托盤圖標(類似於QQ在任務欄)顯示,右鍵單擊托盤圖標顯示退出程序的選項,並實現退出功能;

(2)定時判斷目標進程是否運行在當前系統中,如果沒有則啟動目標進程;

(3)定時判斷目標進程是否「沒有響應」,如果是則終止目標進程並重新啟動;

(4)如果目標進程「沒有響應」超過一定次數,則重啟計算機或者報警。


這個功能實現起來很簡單的吧,如果只在Windows平台下跑,用C#寫Windows Service啊;在Unix-like平台可以考慮用Unix Domain Socket做IPC。

這些都跟編程語言沒多大關係,純粹看你喜歡。不過C#雖然開源了,我不知道它現在在Unix-like的系統下跑得怎麼樣。

Reboot是需要管理員許可權的,不過還是跟語言沒啥關係


看過你的需求,我首先想到的是Erlang。OTP中有一個專門的概念Supervisor,就是為了專門解決程序監控問題的。另外,Erlang也是跨平台的。


用C#做成個Windows Service註冊進去,是我懂得的所有辦法裡面最容易的。


所以Erlang大法好嗎哈哈哈


erlang的應用內supervisor加應用外heart

至於程序沒有響應,那一定是程序做的不好,改設計,改bug,而不是依賴看門狗。


這需求沒什麼難度啊,一個ring3許可權的程序就能辦到。不要界面的話用VC應該最合適了


推薦閱讀:

D語言的前景如何?在中國的發展情況如何?
自學R語言 ,有什麼注意的細節或好的習慣?
MPS教程四:製作一個簡易語言(下)
【認真臉】TypeScript 不是強類型!只是靜態類型!
第3篇:「來啊,造作吧,反正有大把的內存」

TAG:編程語言 | 軟體調試 |