千家信息网

如何以Windows Service的方式运行Python程序

发表于:2025-01-30 作者:千家信息网编辑
千家信息网最后更新 2025年01月30日,这期内容当中小编将会给大家带来有关如何以Windows Service的方式运行Python程序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python程序代码i
千家信息网最后更新 2025年01月30日如何以Windows Service的方式运行Python程序

这期内容当中小编将会给大家带来有关如何以Windows Service的方式运行Python程序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Python程序代码

importwmi  importos  c=wmi.WMI()  watcher=c.Win32_PowerManagementEvent.watch_for(EventType=7)#监视待机事件的语句;  whileTrue:  os.system("kdlj.vbs")#运行"连接宽带"的程序,这里还是用了上次那位仁兄的vbs代码;  watcher()

由于运行时Python程序的控制台窗口一直在那儿,看着有点碍事儿。于是乎想到要是能把他以windowsservice的方式运行,就像其他在windows服务管理器里的程序一样。

最终,在"PythonProgrammingOnWin32"(byMarkHammond)这本书里找到了相关介绍,它里
面有一个简单的模版,把Python程序代码放入相应位置就可以了:

  1. #SmallestService.py

  2. #

  3. #AsampledemonstratingthesmallestpossibleservicewritteninPython.

  4. importwin32serviceutil

  5. importwin32service

  6. importwin32event

  7. classSmallestPythonService(win32serviceutil.ServiceFramework):

  8. _svc_name_="SmallestPythonService"

  9. _svc_display_name_="ThesmallestpossiblePythonService"

  10. def__init__(self,args):

  11. win32serviceutil.ServiceFramework.__init__(self,args)

  12. #Createaneventwhichwewillusetowaiton.

  13. #The"servicestop"requestwillsetthisevent.

  14. self.hWaitStop=win32event.CreateEvent(None,0,0,None)

  15. defSvcStop(self):

  16. #Beforewedoanything,telltheSCMwearestartingthestopprocess.

  17. self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)

  18. #Andsetmyevent.

  19. win32event.SetEvent(self.hWaitStop)

  20. defSvcDoRun(self):

  21. #把你的程序代码放到这里就OK了
    win32event.WaitForSingleObject(self.hWaitStop,win32event.INFINITE)

    if__name__=='__main__':
    win32serviceutil.HandleCommandLine(SmallestPythonService)
    #括号里的名字可以改成其他的,必须与class名字一致;

接下来,只要安装一下服务,cmd下运行:SmallestService.pyinstall就行了。

这样,你就可以在windows服务管理器里找到一个名叫"ThesmallestpossiblePythonService"的服务了,设成自动启动,就会开机自动启动并且一直在后台运行了。(眼不见心不烦,)

不过,这样虽然达到目的了,但还是发现个小问题,就是要是想停止该服务,关闭的进度条就愣在那里不动了,必须在进程管理器里把pythonservice.exe关掉才行,这个bug一直没法解决,就是关闭服务的同时,要把监视待机事件取消,否则退不出这个死循环。

上述就是小编为大家分享的如何以Windows Service的方式运行Python程序了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

程序 运行 服务 代码 方式 就是 管理 事件 内容 名字 要是 还是 分析 待机 监视 一致 心不烦 接下来 眼不见 专业 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 棋牌软件开发成本 oracle 启动服务器 东莞市优普网络技术有限公司 数据库技术分析句子成分 软件文档在软件开发中的地位 湖北鲲鹏服务器生产商 我的世界蹦服务器 服务器管理协议电源 简单点的网络安全画 优炫数据库安全管理 翻牌机数据库 原装戴尔服务器产品的优势所在 巢湖学院网络安全知识竞赛 设计销售订单表数据库 上海物周网络技术有限公司 沈阳找工作java软件开发 海口网络软件开发公司有哪些 方舟进mod服务器为什么慢 虹口区创新数据库报价行情 在线甲基化的数据库 软件文档在软件开发中的地位 电脑老是提示无法连接服务器 郑州天下网络技术公司怎么样 船舶航运相关的网络安全事件 饥荒游戏服务器闪退 施工软件开发公司招聘 服务器管理器怎么增加硬盘 工商银行的贵金属软件开发 新一代服务器服务商 极光互动网络技术有限
0