Python制作Windows系统服务
来源:互联网 发布:电子政务网络拓扑图 编辑:程序博客网 时间:2024/06/16 16:29
Python制作Windows系统服务
最近有个Python程序需要安装并作为Windows系统服务来运行,过程中碰到一些坑,整理了一下。
Python服务类
首先Python程序需要调用一些Windows系统API才能作为系统服务,具体内容如下:
#!/usr/bin/env python# -*- coding: utf-8 -*-import sysimport timeimport win32apiimport win32eventimport win32serviceimport win32serviceutilimport servicemanagerclass MyService(win32serviceutil.ServiceFramework): _svc_name_ = "MyService" _svc_display_name_ = "My Service" _svc_description_ = "My Service" def __init__(self, args): self.log('init') win32serviceutil.ServiceFramework.__init__(self, args) self.stop_event = win32event.CreateEvent(None, 0, 0, None) def SvcDoRun(self): self.ReportServiceStatus(win32service.SERVICE_START_PENDING) try: self.ReportServiceStatus(win32service.SERVICE_RUNNING) self.log('start') self.start() self.log('wait') win32event.WaitForSingleObject(self.stop_event, win32event.INFINITE) self.log('done') except BaseException as e: self.log('Exception : %s' % e) self.SvcStop() def SvcStop(self): self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) self.log('stopping') self.stop() self.log('stopped') win32event.SetEvent(self.stop_event) self.ReportServiceStatus(win32service.SERVICE_STOPPED) def start(self): time.sleep(10000) def stop(self): pass def log(self, msg): servicemanager.LogInfoMsg(str(msg)) def sleep(self, minute): win32api.Sleep((minute*1000), True)if __name__ == "__main__": if len(sys.argv) == 1: servicemanager.Initialize() servicemanager.PrepareToHostSingle(MyService) servicemanager.StartServiceCtrlDispatcher() else: win32serviceutil.HandleCommandLine(MyService)
pyinstaller打包
pyinstaller -F MyService.py
测试
# 安装服务dist\MyService.exe install# 启动服务sc start MyService# 停止服务sc stop MyService# 删除服务sc delete MyService
转载请以链接形式标明本文链接
本文链接:http://blog.csdn.net/kongxx/article/details/65435076
6 0
- Python制作Windows系统服务
- Python制作Windows系统服务
- windows下python监控系统服务
- 制作windows服务程序
- 制作windows服务程序
- 制作windows服务安装服务
- VC制作系统服务
- windows环境将Python脚本做成系统服务
- 制作Windows服务安装包
- Windows服务安装包制作
- C#制作Windows service服务
- Windows运行Python服务
- WINDOWS系统服务详解
- Windows系统服务大全
- windows系统服务优化
- WINDOWS系统服务
- windows系统服务设置
- 卸载windows系统服务
- 《深入理解Java虚拟机——JVM高级特性与最佳实践》学习笔记——Java内存模型与线程
- servlet-跳转、初始化传参、乱码、解析过程
- RS232与RS485
- grub4dos命令和grldr引导文件介绍
- TextView常用的几种方式:跑马灯(三)
- Python制作Windows系统服务
- Docker容器、镜像和文件的转化关系
- SpringMVC-1 概述与HelloWorld
- linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
- L3-003. 社交集群
- ERROR:Unsupported major.minor version 52.0 与更改JDK版本
- JS 中的内部属性与 delete 操作符
- 转接IC LT8911B:LVDS/MIPI DSI转EDP芯片
- Binary Tree Zigzag Level Order Traversal