Windows監控並重啟某個進程指令碼

來源:互聯網
上載者:User

標籤:windows   監控進程   重啟進程   

某程式(進程)在啟動並執行時候可能掛掉,需要去監控該程式,並在它掛掉的時候重啟之,確保該程式能一直運行。
Linux下面似乎有守護進程的概念,Windows下面其實也很簡單,批處理就可以搞定 :
但需要瞭解如下幾個命令
tasklist + find,ping。
tasklist是列出所有進程,可以指定只列出某使用者的進程,用/FI參數過濾。
find /C 可以去tasklist的結果中尋找指定進程名,並輸出個數。
還有個問題是如何設定每隔一段時間去檢測進程是否在運行,我用的是ping命令內建的延遲參數-w,將IP地址設定成一個空地址,
比如0.0.0.1,這樣該命令會一直ping,直到一定n*w 毫秒後才返回(n和w分別是參數-n和-w指定的值)。

樣本程式如下: (JF-SVW.exe SIP轉寄進程)

:RESTART
tasklist /FI "username eq administrator" | find /C "JF-SVW.exe" > temp.txt
set /p num= < temp.txt
del /F temp.txt
echo %num%
if "%num%" == "0"   start /D "C:\Program Files\SHELL\SVW\" JF-SVW.exe 
ping -n 10 -w 2000 0.0.0.1 > temp.txt
del /F temp.txt
goto RESTART 

注意1:goto語句是將監控程式設定成死迴圈。
注意2:可以用start /D path program去非同步呼叫program程式,
       也就是不等program指定完畢就執行下面的語句,因此可以設定固定間隔(n*w毫秒)去監測。
       如果用call program則是同步調用,會等待program執行完畢,這樣延遲就用不著了

本文出自 “bbxwhn” 部落格,請務必保留此出處http://bbxwhn.blog.51cto.com/518597/1660695

Windows監控並重啟某個進程指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.