bat(vbs)批處理實現(xiàn)Windows環(huán)境下守護進程
[重要通告]如您遇疑難雜癥,本站支持知識付費業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!
前幾天大家在群里討論關(guān)于用友U8經(jīng)常掉授權(quán)的事兒,但這只是很單一的說法,多數(shù)跟自己的環(huán)境有關(guān)系,但問題既然有,大家就想著如何能自動啟動,就有了這篇文章;
這腳本提供兩種方式守護,一種是通過進程名,但對于進程名都是java.exe的java程序不適用;
另一種是通過netstat查找應(yīng)用程序所監(jiān)聽的端口是否正在被監(jiān)聽。
這兩種方式可以在腳本中通過兩個冒號注釋來選擇切換。
下面是設(shè)置成通過端口來守護的,當(dāng)端口沒被監(jiān)聽則打開一個zip文件,所以運行后會發(fā)現(xiàn)沒過5秒會重復(fù)打開這個zip文件,除非這個zip文件打開后會自動監(jiān)聽8080端口,那當(dāng)然是不可能的!腳本涉及的命令就不解釋了搜一下就知道了。
@echo off ::檢測時間間隔,單位:秒 set _interval=5 ::需要守護的進程名稱 set _processName=WinRAR ::需要守護的進程啟動命令 set _processCmd=C:\ideavim-0.32.zip ::需要守護的進程預(yù)估啟動完畢所需時間,單位:秒 set _processTimeout=10 ::需要守護的進程所監(jiān)聽的端口 set _port=8080 ::進程用戶名,一般是Administrator set _username=Administrator :LOOP set /a isAlive=false ::通過進程名稱檢測 ::tasklist /FI "username eq %_username%" | find /C "%_processName%" > temp.txt ::set /p num= < temp.txt ::del /F temp.txt ::通過進程的端口是否正在被監(jiān)聽檢測 netstat -an | find /C "0.0.0.0:%_port%" > temp.txt set /p num= < temp.txt del /F temp.txt if "%num%" == "0" ( start %_processCmd% | echo 啟動 %_processName% 于 %time% choice /D y /t %_processTimeout% > nul ) if "%num%" NEQ "0" echo 已啟動 ::ping -n %_interval% 127.1>nul choice /D y /t %_interval% >nul goto LOOP
該腳本運行后會出現(xiàn)一個dos窗口,若覺得礙眼可以用記事本將下面保存為擴展名為.vbs的文件。其中U8.bat是上面批處理保存的文件名。兩個文件放在同一目錄下雙擊vbs文件后,守護進程就在后臺運行了,單這樣得通過資源管理器結(jié)束cmd進程才能停止守護進程。
set ws=WScript.CreateObject("WScript.Shell") ws.Run "U8.bat",0
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!
賞
支付寶贊助
微信贊助
免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。
您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對《免責(zé)聲明》全部內(nèi)容的認可->聯(lián)系老梁投訴資源 LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請聯(lián)系站長并出示版權(quán)證明以便刪除。
敬請諒解! 侵權(quán)刪帖/違法舉報/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評論,如有謬誤,請聯(lián)系指正;轉(zhuǎn)載請注明出處: » bat(vbs)批處理實現(xiàn)Windows環(huán)境下守護進程