首先需要安装两个模块。

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服务启动相关推荐

  1. python开发windows桌面程序,python开发windows桌面应用

    为什么用Python开发桌面应用程序 1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植. 2)Py ...

  2. 计算机打开服务的命令行,Win7使用命令行启动和停止Windows服务程序技巧

    想必,大家都了解Windows服务程序是Windows操作系统下能完成特定功能的可执行应用程序,它运行的话,同样会占用系统资源,如果我们能适时的停止系统服务,电脑的运行速度必将更快.接下来,U大侠小编 ...

  3. C# 编写Windows Service(windows服务程序)

    Windows Service简介: 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.Windows服务程序虽然是可执行的,但是它不像一般的可执行文件通过双击就 ...

  4. 用Visual C#创建Windows服务程序

    一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Windows NT.Windows 2000和Windows XP等操作系统下用户环境以外的程序.在以前,编写Wind ...

  5. Visual C#创建Windows服务程序

    转自:http://www.vchome.net/dotnet/dotnetdocs/dotnet38.htm 一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Wind ...

  6. Windows服务程序时钟调用

    1       大概思路 设计服务程序 创建服务 安装必备组件 编写Service1 运行效果 2       设计服务程序 创建服务程序,通过添加System.Timers时钟进行定时向Wecome ...

  7. windows服务程序一

    Windows 服务程序简介: Windows服务应用程序是一种需要长期运行的应用程序,它没有用户界面,并且也不会产生任何可视输出.计算机启动时,服务会自动开始运行.Windows服务允许用户创建可在 ...

  8. C#写Windows Service(windows服务程序)

    背景:        要学习使用一个新东西,我们必须知道他是个什么东西.对于我们此次研究的windows服务来说,他又是个什么东西,其实也没有什么高深的了. windows service概述: 一个 ...

  9. windows oracle重建监听,Windows下修改Oracle监听端口

    先放开防火墙的端口,再来改监听端口. 只有一个实例: net stop OracleOraDb11g_home1TNSListener 再运行 NET Manager 修改实例名与Listener的端 ...

  10. python开发服务程序_Python 编写Windows服务程序:将Python作为Windows服务启动 | 学步园...

    Python程序作为Windows服务启动,需要安装pywin32包.下载路径: #-*- coding:utf-8 -*- import win32serviceutil import win32s ...

最新文章

  1. AutoLayouterLib第一版基本完成
  2. 四因素三水平正交试验表_软件测试|正交试验测试用例设计方法
  3. Ubuntu 下常用的命令 简略记录
  4. python打开autocad软件_python 使用pyautocad操作AutoCAD
  5. lombak-插件使用
  6. The Windows Phone Emulator wasn't able to create the external network switches 解决方法
  7. read一个收到RST的socket会返回0?
  8. SQL基本语句1——创建、添加、删除
  9. lammps建模_lammps建模
  10. 八数码难题(启发式搜索)
  11. matlab设置角度和弧度制,matlab 可不可以用角度制不用弧度制?
  12. 【sphinx】中文声学模型训练
  13. 猫和计算机连接网络,宽带猫和路由器怎样连接 宽带猫和路由器连接方法【教程】...
  14. 解决ios固定定位失效问题
  15. 忘记手机密码怎么用计算机解开,手机忘记密码怎么办?教你三种方法帮你搞定!...
  16. Cascading Convolutional Color Constancy
  17. TM影像各波段及波段组合情况
  18. 重生后发现高冷女同桌暗恋我!(二)
  19. bnuoj 44359 快来买肉松饼
  20. 基于Appian低代码平台开发一个SpaceX网站

热门文章

  1. 获取电商网站主图和详情图的浏览器插件
  2. 如何批量将多个 PPT 文档中的图片提取出来
  3. Linux挂盘出现的问题
  4. 1134. 积木分发
  5. 小小甜菜深度学习爬坑记
  6. 【瑞萨RA4系列】开发环境搭建和点灯指南
  7. 【树哈希】poj1635 Subway tree systems
  8. 10分钟带你彻底搞懂微内核架构
  9. Java-Spring-使用篇之快速入门
  10. MATLAB 全景图切割及盒图显示