2012年8月26日 星期日

在 Windows Service 中註冊 Python Script

 

將自己寫的程式註冊在 Windows Service 中有幾個好處:

  1. 可以在系統啟動時自動啟動。
  2. 可設定程式出了狀況之後的處理機制。(如馬上重啟…etc)
  3. 在多人連線的環境下,常常會限制「登入個數」,也會設定「閒置登出時間」,一但執行程式的 Session 被登出,程式就停止了。

程式碼如下:

service.py


import win32serviceutil

class service(win32serviceutil.ServiceFramework):
_svc_name_ = "ServiceName"
_svc_display_name_ = "Service display name"
_svc_description_ = "Service description"

def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
self.isAlive = True

def SvcStop(self):
self.isAlive = False

def SvcDoRun(self):
self.timeout = 1000
while self.isAlive:
# your script here

if __name__ == '__main__':
win32serviceutil.HandleCommandLine(service)

 

接著只要在命令提示字元下達

python service.py install

 

就可以註冊一個服務到windows裡了

 

其他指令可以下達此命令查詢

python service.py

沒有留言:

張貼留言