最近遇到很頭疼的問題,安裝到服務器的Windows Service卸載的時候出錯了,結果在服務列表中就一直駐留,並且系統進程一直在運行,怎么都殺不掉。
最后終於找到辦法了:
1.常規做法,批處理命令卸載
Net Stop ServiceName
sc delete ServiceName
pause
2.如果還是沒辦法,那就繼續嘗試
a.找到系統注冊表,刪掉服務的注冊表信息,通常路徑在:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 找到你的Service服務的名字,然后把整個文件夾刪掉
b.如果還是在繼續運行,service列表中還顯示的話,用管理員權限打開cmd 命令 sc delete serviceName,如果提示 “the specified service is marked as deletion”。
導致windows service不能部署,也不能被刪除,使用 SC 命令也不奏效。終於弄明白了:原來是windows service database緩存的原因,reboot server可以完美解決問題。但實際上我們可以嘗試:
1. 關閉所有windows service控制面板。
2. 查找windows service的PID:SC queryex service_name
3. 殺掉進程:taskkill /PID service_pid /f
這樣就再也不用擔心windows service部署了。