用python做了一個Windows服務。
主要結構如下:
class Smonitoringdebug(): svc_name = "Smonitoringdebug"
svc_display_name = "Smonitoringdebug"
svc_description = "監控測驗"
def SvcDoRun(self):
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=test;DATABASE=Smonitoring;UID=sa;PWD=1234567')
cursor = cnxn.cursor()
print("service is run....")
try:
while True:
……
cursor.execute(……)
cnxn.commit()
time.sleep(100)
cnxn.close()
except Exception as e:
cnxn.close()
print(e)
time.sleep(500)
def SvcStop(self):
print("service is stop....")
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.hWaitStop)
self.run = False
if name == 'main':
#win32serviceutil.HandleCommandLine(SmonitoringServer)
Smonitoringdebug().SvcDoRun()
通過python環境使用正常。
用pyinstaller打包
pyinstaller Smonitoringdebug.py
打包后安裝服務出錯:
>SmonitoringServer install
Traceback (most recent call last):
File "SmonitoringServer.py", line 177, in <module>
File "site-packages\win32\lib\win32serviceutil.py", line 544, in HandleCommandLine
File "site-packages\win32\lib\win32serviceutil.py", line 485, in GetServiceClassString
IndexError: list index out of range
[18216] Failed to execute script SmonitoringServer
求解決方法,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/102352.html
