如何在 python 中与 'Windows service' 同步交互

How to interact with 'Windows service' synchronously in python

使用pywin32模块如何? 或者有什么办法可以通过子流程模块实现吗?

我无法想象这怎么可能。

Windows 服务不公开通用消息 API;每个服务(如果它选择)通过自己选择的 IPC 通道(例如 WCF)公开自己特定的 API。

无论如何,没有任何东西可以让您同步执行此操作;任何类型的 IPC 都将是对服务端点的异步调用。

您的问题需要更具体一些。

用于与 windows 服务交互的可用通用 API 基本上限于;停止、启动、安装、卸载。看看这里:https://msdn.microsoft.com/en-us/library/windows/desktop/ms685942(v=vs.85).aspx

(如果您正在编写 new windows 服务,在 python 中,ZeroMQ 将是一个非常合理的选择,可以通过命令与它交互行 python 脚本;python 有任意数量的替代 IPC 通道,这同样好)

--

要仅启动服务,请尝试:

import win32service
import win32serviceutil
import time

win32serviceutil.StartService(serviceName)
status = win32serviceutil.QueryServiceStatus(serviceName)
while status == win32service.SERVICE_START_PENDING:
  time.sleep(1)
  status = win32serviceutil.QueryServiceStatus(serviceName)

铌。除非您以管理员身份生成 python 实例,否则您将收到拒绝访问错误。