编写Windows服务程序,将Python作为Windows服务启动
首先需要安装两个模块。
pip install pywin32 -i https://pypi.tuna.tsinghua.edu.cn/simplepip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
编译命令:
pyinstaller --hiddenimport win32timezone -F main.py
控制命令:
winService.exe install //仅安装服务程序
winService.exe --startup auto install //安装服务程序,并设置开机启动
winService.exe start //启动服务
winService.exe stop //停止服务
winService.exe remove //移除服务
#encoding=utf-8
import win32serviceutil
import win32service
import win32event
import os
import logging
import inspect
class PySerTest(win32serviceutil.ServiceFramework):_svc_name_ = "PySerTest"_svc_display_name_ = "Py Service Test"#服务显示的名称,可以自己修改_svc_description_ = "This is a python service test code " #服务显示的描述def __init__(self, args):win32serviceutil.ServiceFramework.__init__(self, args)self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)self.logger = self._getLogger()self.run = Truedef _getLogger(self):logger = logging.getLogger('[PythonService]')this_file = inspect.getfile(inspect.currentframe())dirpath = os.path.abspath(os.path.dirname(this_file))# handler = logging.FileHandler(os.path.join(dirpath, "service.log"))handler = logging.FileHandler("G:\\service.log")formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')handler.setFormatter(formatter)logger.addHandler(handler)logger.setLevel(logging.INFO)return loggerdef SvcDoRun(self):#在此编写自己的业务程序import timeself.logger.info("service is run....")while self.run:self.logger.info("I am runing....")time.sleep(2)def SvcStop(self):self.logger.info("service is stop....")self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)win32event.SetEvent(self.hWaitStop)self.ReportServiceStatus(win32service.SERVICE_STOPPED)self.run = False
if __name__=='__main__':# win32serviceutil.HandleCommandLine(PythonService)import sysimport servicemanagerif len(sys.argv) == 1:try:evtsrc_dll = os.path.abspath(servicemanager.__file__)servicemanager.PrepareToHostSingle(PySerTest) #如果修改过名字,名字要统一servicemanager.Initialize('PySerTest',evtsrc_dll) #如果修改过名字,名字要统一servicemanager.StartServiceCtrlDispatcher()except win32service.error as details:import winerrorif details == winerror.ERROR_FAILED_SERVICE_CONTROLLER_CONNECT:win32serviceutil.usage()else:win32serviceutil.HandleCommandLine(PySerTest) #如果修改过名字,名字要统一```
编写Windows服务程序,将Python作为Windows服务启动相关推荐
- python开发windows桌面程序,python开发windows桌面应用
为什么用Python开发桌面应用程序 1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植. 2)Py ...
- 计算机打开服务的命令行,Win7使用命令行启动和停止Windows服务程序技巧
想必,大家都了解Windows服务程序是Windows操作系统下能完成特定功能的可执行应用程序,它运行的话,同样会占用系统资源,如果我们能适时的停止系统服务,电脑的运行速度必将更快.接下来,U大侠小编 ...
- C# 编写Windows Service(windows服务程序)
Windows Service简介: 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.Windows服务程序虽然是可执行的,但是它不像一般的可执行文件通过双击就 ...
- 用Visual C#创建Windows服务程序
一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Windows NT.Windows 2000和Windows XP等操作系统下用户环境以外的程序.在以前,编写Wind ...
- Visual C#创建Windows服务程序
转自:http://www.vchome.net/dotnet/dotnetdocs/dotnet38.htm 一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Wind ...
- Windows服务程序时钟调用
1 大概思路 设计服务程序 创建服务 安装必备组件 编写Service1 运行效果 2 设计服务程序 创建服务程序,通过添加System.Timers时钟进行定时向Wecome ...
- windows服务程序一
Windows 服务程序简介: Windows服务应用程序是一种需要长期运行的应用程序,它没有用户界面,并且也不会产生任何可视输出.计算机启动时,服务会自动开始运行.Windows服务允许用户创建可在 ...
- C#写Windows Service(windows服务程序)
背景: 要学习使用一个新东西,我们必须知道他是个什么东西.对于我们此次研究的windows服务来说,他又是个什么东西,其实也没有什么高深的了. windows service概述: 一个 ...
- windows oracle重建监听,Windows下修改Oracle监听端口
先放开防火墙的端口,再来改监听端口. 只有一个实例: net stop OracleOraDb11g_home1TNSListener 再运行 NET Manager 修改实例名与Listener的端 ...
- python开发服务程序_Python 编写Windows服务程序:将Python作为Windows服务启动 | 学步园...
Python程序作为Windows服务启动,需要安装pywin32包.下载路径: #-*- coding:utf-8 -*- import win32serviceutil import win32s ...
最新文章
- AutoLayouterLib第一版基本完成
- 四因素三水平正交试验表_软件测试|正交试验测试用例设计方法
- Ubuntu 下常用的命令 简略记录
- python打开autocad软件_python 使用pyautocad操作AutoCAD
- lombak-插件使用
- The Windows Phone Emulator wasn't able to create the external network switches 解决方法
- read一个收到RST的socket会返回0?
- SQL基本语句1——创建、添加、删除
- lammps建模_lammps建模
- 八数码难题(启发式搜索)
- matlab设置角度和弧度制,matlab 可不可以用角度制不用弧度制?
- 【sphinx】中文声学模型训练
- 猫和计算机连接网络,宽带猫和路由器怎样连接 宽带猫和路由器连接方法【教程】...
- 解决ios固定定位失效问题
- 忘记手机密码怎么用计算机解开,手机忘记密码怎么办?教你三种方法帮你搞定!...
- Cascading Convolutional Color Constancy
- TM影像各波段及波段组合情况
- 重生后发现高冷女同桌暗恋我!(二)
- bnuoj 44359 快来买肉松饼
- 基于Appian低代码平台开发一个SpaceX网站