我想快速杀死一个windows服务,而不是停止它。服务是一个python进程,因此进程的名称是python.exe,因此我无法按名称终止进程。目前,我正在使用sc queryex servicename
,然后从中解析PID并按PID终止。这对于我的子进程来说是有问题的(我目前正在使用Popen
和contextlib.exitstack
同时关闭许多服务),因为这需要运行两个命令,因此这些命令中只有一个可以并行化。你知道吗
有可能一次性完成吗?这是我的密码:
# This portion is not parallel
pid_data = subprocess.check_output(["sc", "queryex", "svcname"])
if pid_data[0] != "PID":
raise ValueError("Incorrect line number while running svc search.")
else:
msgsvc_pid = int(pid_data[1])
with contextlib.ExitStack() as stack:
# This portion is parallel
stack.enter_context(self._kill_service_by_pid(msgsvc_pid, quiet))
for svc in svc_list:
stack.enter_context(self._kill_service(svc, quiet))
其中_kill_service_by_pid
和_kill_service
都是通过进程名或PID调用taskkill
终止服务的方法。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐