python瀹炵幇windows Service鏈嶅姟绋嬪簭,,鏍囩锛?a hre
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鏂囦欢
鎵ц鏂瑰紡
瀹夎鏈嶅姟 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
评论关闭