最近遇到很头疼的问题,安装到服务器的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部署了。