python瀹炵幇windows Service鏈嶅姟绋嬪簭,,鏍囩锛?a hre


鏍囩锛?a href='http://www.byrx.net/so/1/%e8%87%aa%e5%8a%a8%e5%90%af%e5%8a%a8' title='鑷姩鍚姩'>鑷姩鍚姩

python瀹炵幇windows Service鏈嶅姟绋嬪簭

win32serviceutil.ServiceFramework鏄皝瑁呭緱寰堝ソ鐨刉indows鏈嶅姟妗嗘灦锛屾湰鏂囬€氳繃缁ф壙瀹冩潵瀹炵幇銆?/span>

閫氳繃SvcDoRun鏂规硶锛屽疄鐜版湇鍔″惎鍔紝杩愯鏈嶅姟鍐呯殑涓氬姟浠g爜銆?/span>閫氳繃SvcStop鏂规硶锛屽仠姝㈡湇鍔°€?/span>

WinPollManager.py浠g爜濡備笅锛?/span>

import win32serviceutilimport win32serviceimport win32eventimport winerrorimport servicemanagerimport timeimport sysimport osclass WinPollManager(win32serviceutil.ServiceFramework):    """    #1.瀹夎鏈嶅姟    python WinPollManager.py install    #2.璁╂湇鍔¤嚜鍔ㄥ惎鍔?    python WinPollManager.py --startup auto install    #3.鍚姩鏈嶅姟    python WinPollManager.py start    #4.閲嶅惎鏈嶅姟    python WinPollManager.py restart    #5.鍋滄鏈嶅姟    python WinPollManager.py stop    #6.鍒犻櫎/鍗歌浇鏈嶅姟    python WinPollManager.py remove    """    _svc_name_ = "py_agent_poll_manager"  # 鏈嶅姟鍚?    _svc_display_name_ = "py_agent_poll_manager"  # 鏈嶅姟鍦╳indows绯荤粺涓樉绀虹殑鍚嶇О    _svc_description_ = "python windows monitor agent"  # 鏈嶅姟鐨勬弿杩?    def __init__(self, args):        win32serviceutil.ServiceFramework.__init__(self, args)        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)        self.isAlive = True        self._poll_intvl = 30    def SvcDoRun(self):        while self.isAlive:            print 鈥榤onitor testing鈥?            time.sleep(self._poll_intvl)    def SvcStop(self):        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)        win32event.SetEvent(self.hWaitStop)        self.isAlive = Falseif __name__ == 鈥榑_main__鈥?    if len(sys.argv) == 1:        try:            evtsrc_dll = os.path.abspath(servicemanager.__file__)            servicemanager.PrepareToHostSingle(WinPollManager)            servicemanager.Initialize(鈥榃inPollManager鈥? evtsrc_dll)            servicemanager.StartServiceCtrlDispatcher()        except win32service.error, details:            if details[0] == winerror.ERROR_FAILED_SERVICE_CONTROLLER_CONNECT:                win32serviceutil.usage()    else:        win32serviceutil.HandleCommandLine(WinPollManager)  # 鎷彿閲屽弬鏁板彲浠ユ敼鎴愬叾浠栧悕瀛楋紝浣嗘槸蹇呴』涓巆lass绫诲悕涓€鑷达紱

鎵撳寘exe鏂囦欢

# -*- coding: utf-8 -*-"""pip install pyinstallerpyinstaller -F -w WinPollManager.py"""from PyInstaller.__main__ import runif __name__ == 鈥榑_main__鈥?    params = [鈥榃inPollManager.py鈥? 鈥?F鈥? 鈥?c鈥? 鈥?-icon=favicon.ico鈥榏    run(params)

鎵撳寘鎴愬姛鍚庡湪dist鐩綍涓嬬敓鎴恊xe鏂囦欢

鎶€鏈垎浜? src=

鎵ц鏂瑰紡

瀹夎鏈嶅姟 WinPollManager.exe install鏈嶅姟鑷姩鍚姩 WinPollManager.exe --startup auto install鍚姩鏈嶅姟 WinPollManager.exe start閲嶅惎鏈嶅姟 WinPollManager.exe restart鍋滄鏈嶅姟 WinPollManager.exe stop鍒犻櫎/鍗歌浇鏈嶅姟 WinPollManager.exe remove

鍙傝€冩枃绔狅細

http://zhangweide.cn/archive/2013/windows-service-example-using-pyinstaller.html

http://www.cnblogs.com/dcb3688/p/4496934.html

http://blog.csdn.net/dysj4099/article/details/21896085

python瀹炵幇windows Service鏈嶅姟绋嬪簭

鏍囩锛?a href='http://www.byrx.net/so/1/%e8%87%aa%e5%8a%a8%e5%90%af%e5%8a%a8' title='鑷姩鍚姩'>鑷姩鍚姩

鍘熸枃鍦板潃锛歨ttp://www.cnblogs.com/shhnwangjian/p/6844547.html

评论关闭