如何在 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 实例,否则您将收到拒绝访问错误。
使用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 实例,否则您将收到拒绝访问错误。