亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python制作Windows系統(tǒng)服務(wù)

 更新時間:2017年03月25日 15:04:55   作者:kongxx  
這篇文章主要為大家詳細(xì)介紹了Python制作Windows系統(tǒng)服務(wù)的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近有個Python程序需要安裝并作為Windows系統(tǒng)服務(wù)來運行,過程中碰到一些坑,整理了一下。

Python服務(wù)類

首先Python程序需要調(diào)用一些Windows系統(tǒng)API才能作為系統(tǒng)服務(wù),具體內(nèi)容如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import time

import win32api
import win32event
import win32service
import win32serviceutil
import servicemanager


class 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

測試

# 安裝服務(wù)
dist\MyService.exe install

# 啟動服務(wù)
sc start MyService

# 停止服務(wù)
sc stop MyService

# 刪除服務(wù)
sc delete MyService

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

相關(guān)文章

  • Python使用Tesseract實現(xiàn)從圖像中讀取文本

    Python使用Tesseract實現(xiàn)從圖像中讀取文本

    Tesseract?是一個基于計算機(jī)的系統(tǒng),用于光學(xué)字符識別?(OCR)?和其他圖像到文本處理,本文將介紹如何使用?Python?中的?Tesseract?創(chuàng)建一個可以從圖像中讀取文本的程序,需要的可以參考下
    2023-11-11
  • 解決Django Static內(nèi)容不能加載顯示的問題

    解決Django Static內(nèi)容不能加載顯示的問題

    今天小編就為大家分享一篇解決Django Static內(nèi)容不能加載顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python數(shù)據(jù)庫小程序源代碼

    Python數(shù)據(jù)庫小程序源代碼

    這篇文章主要介紹了Python數(shù)據(jù)庫小程序源代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • 基于python tkinter的點名小程序功能的實例代碼

    基于python tkinter的點名小程序功能的實例代碼

    這篇文章主要介紹了基于python tkinter的點名小程序,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • numpy ndarray 按條件篩選數(shù)組,關(guān)聯(lián)篩選的例子

    numpy ndarray 按條件篩選數(shù)組,關(guān)聯(lián)篩選的例子

    今天小編就為大家分享一篇numpy ndarray 按條件篩選數(shù)組,關(guān)聯(lián)篩選的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python使用matplotlib 模塊scatter方法畫散點圖示例

    Python使用matplotlib 模塊scatter方法畫散點圖示例

    這篇文章主要介紹了Python使用matplotlib 模塊scatter方法畫散點圖,結(jié)合實例形式分析了Python數(shù)值運算與matplotlib模塊圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • Python實現(xiàn)小數(shù)轉(zhuǎn)化為百分?jǐn)?shù)的格式化輸出方法示例

    Python實現(xiàn)小數(shù)轉(zhuǎn)化為百分?jǐn)?shù)的格式化輸出方法示例

    這篇文章主要介紹了Python實現(xiàn)小數(shù)轉(zhuǎn)化為百分?jǐn)?shù)的格式化輸出方法,結(jié)合具體實例形式分析了Python實現(xiàn)小數(shù)轉(zhuǎn)換為百分?jǐn)?shù)輸出的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2017-09-09
  • Flask數(shù)據(jù)庫遷移簡單介紹

    Flask數(shù)據(jù)庫遷移簡單介紹

    這篇文章主要為大家詳細(xì)介紹了Flask數(shù)據(jù)庫遷移簡單工作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Python基于LightGBM進(jìn)行時間序列預(yù)測

    Python基于LightGBM進(jìn)行時間序列預(yù)測

    LightGBM是擴(kuò)展機(jī)器學(xué)習(xí)系統(tǒng)。是一款基于GBDT(梯度提升決策樹)算法的分布梯度提升框架。其設(shè)計思路主要集中在減少數(shù)據(jù)對內(nèi)存與計算性能的使用上,以及減少多機(jī)器并行計算時的通訊代價。本文將通過LightGBM進(jìn)行時間序列預(yù)測,感興趣的可以了解一下
    2022-03-03
  • python 順時針打印矩陣的超簡潔代碼

    python 順時針打印矩陣的超簡潔代碼

    今天小編就為大家分享一篇python 順時針打印矩陣的超簡潔代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11

最新評論