国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python制作Windows系統服務

2020-02-23 04:29:45
字體:
來源:轉載
供稿:網友

最近有個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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁南县| 微山县| 新营市| 丘北县| 腾冲县| 南漳县| 称多县| 玉林市| 塔城市| 中阳县| 广德县| 临颍县| 海林市| 宜兴市| 汶上县| 密山市| 仲巴县| 扬州市| 陇西县| 庆云县| 海原县| 松江区| 灵宝市| 柏乡县| 揭东县| 南华县| 乐东| 甘肃省| 晋城| 晋州市| 孟津县| 福泉市| 鲁甸县| 广丰县| 芦溪县| 冀州市| 祁阳县| 新疆| 巫溪县| 巫溪县| 钟祥市|