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

首頁 > 編程 > Python > 正文

python程序封裝為win32服務(wù)的方法

2020-02-15 23:45:34
字體:
供稿:網(wǎng)友

本文實例為大家分享了python程序封裝為win32服務(wù)的具體代碼,供大家參考,具體內(nèi)容如下

# encoding=utf-8import osimport sysimport winerrorimport win32serviceutilimport win32serviceimport win32eventimport servicemanager  class PythonService(win32serviceutil.ServiceFramework):  # 服務(wù)名 _svc_name_ = "PythonService1" # 服務(wù)顯示名稱 _svc_display_name_ = "PythonServiceDemo" # 服務(wù)描述 _svc_description_ = "Python service demo."  def __init__(self, args):  win32serviceutil.ServiceFramework.__init__(self, args)  self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)  self.logger = self._getLogger()  self.isAlive = True  def _getLogger(self):  import logging  import os  import inspect   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"))   formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')  handler.setFormatter(formatter)   logger.addHandler(handler)  logger.setLevel(logging.INFO)   return logger  def SvcDoRun(self):  import time  self.logger.error("svc do run....")  try:   while self.isAlive:    self.logger.error("I am alive.")    time.sleep(1)    # 等待服務(wù)被停止    # win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE)  except Exception as e:   self.logger.error(e)   time.sleep(60)  def SvcStop(self):  # 先告訴SCM停止這個過程  self.logger.error("svc do stop....")  self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)  # 設(shè)置事件  win32event.SetEvent(self.hWaitStop)  self.isAlive = False  if __name__ == '__main__': if len(sys.argv) == 1:  try:   src_dll = os.path.abspath(servicemanager.__file__)   servicemanager.PrepareToHostSingle(PythonService)   servicemanager.Initialize("PythonService", src_dll)   servicemanager.StartServiceCtrlDispatcher()  except Exception as e:   print(e)   #if details[0] == winerror.ERROR_FAILED_SERVICE_CONTROLLER_CONNECT:    #win32serviceutil.usage() else:  win32serviceutil.HandleCommandLine(PythonService) # 參數(shù)和上述定義類名一致 #pip install pywin32 # 安裝服務(wù)# python PythonService.py install# 讓服務(wù)自動啟動# python PythonService.py --startup auto install# 啟動服務(wù)# python PythonService.py start# 重啟服務(wù)# python PythonService.py restart# 停止服務(wù)# python PythonService.py stop# 刪除/卸載服務(wù)# python PythonService.py remove  # 在用戶變量處去掉python路徑,然后在環(huán)境變量加入python路徑# C:/Users/zhongjianhui/AppData/Local/Programs/Python/Python36/Lib/site-packages/pywin32_system32;# C:/Users/zhongjianhui/AppData/Local/Programs/Python/Python36/Lib/site-packages/win32;# C:/Users/zhongjianhui/AppData/Local/Programs/Python/Python36/Scripts/;#C:/Users/zhongjianhui/AppData/Local/Programs/Python/Python36/

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林站長站。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 盘锦市| 德江县| 三河市| 车险| 邓州市| 桐柏县| 宁陵县| 西和县| 拜泉县| 手游| 利辛县| 高雄县| 会同县| 华池县| 安宁市| 上蔡县| 莎车县| 汝阳县| 铜陵市| 莫力| 南华县| 洪洞县| 资阳市| 呼玛县| 峨眉山市| 平昌县| 九台市| 措勤县| 隆安县| 上饶县| 台山市| 宁国市| 望谟县| 孟州市| 介休市| 金门县| 贵州省| 建湖县| 西林县| 南江县| 兴业县|