最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ù)來運(yùn)行,過程中碰到一些坑,整理了一下。

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 pygame 項目實戰(zhàn)事件監(jiān)聽

    Python pygame 項目實戰(zhàn)事件監(jiān)聽

    這篇文章主要介紹了Python pygame 項目實戰(zhàn)事件監(jiān)聽,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • python簡單實現(xiàn)基數(shù)排序算法

    python簡單實現(xiàn)基數(shù)排序算法

    這篇文章主要介紹了python簡單實現(xiàn)基數(shù)排序算法,僅用4行代碼即可實現(xiàn)基數(shù)排序算法,非常簡單實用,需要的朋友可以參考下
    2015-05-05
  • selenium?UI自動化實戰(zhàn)過程記錄

    selenium?UI自動化實戰(zhàn)過程記錄

    如果大家有做過web的自動化測試,相信對于selenium一定不陌生,測試人員經(jīng)常使用它來進(jìn)行自動化測試,下面這篇文章主要給大家介紹了關(guān)于selenium?UI自動化實戰(zhàn)的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • pycharm運(yùn)行程序時看不到任何結(jié)果顯示的解決

    pycharm運(yùn)行程序時看不到任何結(jié)果顯示的解決

    今天小編就為大家分享一篇pycharm運(yùn)行程序時看不到任何結(jié)果顯示的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 詳解Python中的join()函數(shù)的用法

    詳解Python中的join()函數(shù)的用法

    這篇文章主要介紹了詳解Python中的join()函數(shù)的用法,join()函數(shù)主要用來拼接字符串,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-04-04
  • Python callable內(nèi)置函數(shù)原理解析

    Python callable內(nèi)置函數(shù)原理解析

    這篇文章主要介紹了Python callable內(nèi)置函數(shù)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • python如何獲取文件當(dāng)前位置和定位某個位置

    python如何獲取文件當(dāng)前位置和定位某個位置

    這篇文章主要介紹了python如何獲取文件當(dāng)前位置和定位某個位置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python PyQt5實戰(zhàn)項目之網(wǎng)速監(jiān)控器的實現(xiàn)

    Python PyQt5實戰(zhàn)項目之網(wǎng)速監(jiān)控器的實現(xiàn)

    PyQt5以一套Python模塊的形式來實現(xiàn)功能。它包含了超過620個類,600個方法和函數(shù)。它是一個多平臺的工具套件,它可以運(yùn)行在所有的主流操作系統(tǒng)中,包含Unix,Windows和Mac OS。PyQt5采用雙重許可模式。開發(fā)者可以在GPL和社區(qū)授權(quán)之間選擇
    2021-11-11
  • Python獲取網(wǎng)絡(luò)圖片和視頻的示例代碼

    Python獲取網(wǎng)絡(luò)圖片和視頻的示例代碼

    Python 是一種多用途語言,廣泛用于腳本編寫。我們可以編寫Python 腳本來自動化日常事務(wù)。本文將用Python實現(xiàn)獲取Google圖片和YouTube視頻,需要的可以參考一下
    2022-03-03
  • Python使用SciPy庫的插值方法及示例詳解

    Python使用SciPy庫的插值方法及示例詳解

    SciPy是一個基于NumPy構(gòu)建的Python模塊,它集成了多種數(shù)學(xué)算法和函數(shù),這篇文章主要為大家詳細(xì)介紹了如何使用SciPy庫實現(xiàn)插值,需要的可以了解下
    2024-03-03

最新評論

阿拉尔市| 射洪县| 长垣县| 双柏县| 丹凤县| 濮阳县| 沙坪坝区| 永宁县| 安塞县| 秦皇岛市| 牙克石市| 密云县| 南充市| 安丘市| 都兰县| 林芝县| 西盟| 大埔区| 祥云县| 汽车| 和平县| 赤峰市| 莒南县| 凤台县| 额尔古纳市| 镇赉县| 宁夏| 玛多县| 若羌县| 连南| 辽宁省| 台北市| 望谟县| 上杭县| 武汉市| 巍山| 得荣县| 乌鲁木齐县| 文登市| 穆棱市| 石柱|