在python中以编程方式终止Windows服务
我想快速终止windows服务,而不是停止它。该服务是一个python进程,因此该进程的名称是python.exe,因此我无法按名称终止该进程。目前,我正在使用在python中以编程方式终止Windows服务,python,windows,service,Python,Windows,Service,我想快速终止windows服务,而不是停止它。该服务是一个python进程,因此该进程的名称是python.exe,因此我无法按名称终止该进程。目前,我正在使用sc queryex servicename,然后从中解析PID并按PID终止。这对于我的子进程来说是有问题的(我目前正在使用Popen和contextlib.exitstack同时关闭许多服务),因为这需要运行两个命令,因此这些命令中只有一个可以并行 能一次完成吗?这是我的密码: # This portion is not parall
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))
其中,\u kill\u service\u by_pid
和\u kill\u service
都是调用taskkill
以按进程名称或pid终止服务的方法