什么是停止和启动Windows服务的python命令。我不能使用win32serviceutil,因为我使用的是最新的python版本3.6。
答案 0 :(得分:2)
您可以使用Windows提供的sc
命令行界面:
import subprocess
# start the service
args = ['sc', 'start', 'Service Name']
result = subprocess.run(args)
# stop the service
args[1] = 'stop'
result = subprocess.run(args)
答案 1 :(得分:1)
现有的答案非常非 Pythonic 且不够简单。
我在寻找 Pythonic 解决方案时偶然发现了这个问题。
我有一个更简单的解决方案,但不是 Pythonic。
只需将 net start servicename
与 os.system
一起使用。
比如我们要启动MySQL80:
import os
os.system('net start MySQL80')
现在将其用作函数:
import os
def start_service(svc):
os.system(f'net start {svc}')
要停止服务,请使用 net stop servicename
:
import os
def stop_service(svc):
os.system(f'net stop {svc}')
我知道我的解决方案不是 Pythonic,但现有的答案也不是 Pythonic,到目前为止,在我的 Google 搜索中,我还没有找到任何相关和 Pythonic 的内容。
答案 2 :(得分:0)
安装 pywin32
from GitHub,那里没有关于 Python 3.6 的限制(我知道是 2017 年)+它直接与 Win32 API 一起工作,所以没有 os.system()
或类似的命令调用。此外,无需编译,作者在安装程序中提供二进制文件。而且 PyPI 似乎也没有任何问题 - the versions are matching。
使用 StartService(serviceName, args = None, machine = None)
函数。