Tôi đang sử dụng mẫu được tìm thấy tại đây: Is it possible to run a Python script as a service in Windows? If possible, how?Triển khai ứng dụng Flask dưới dạng dịch vụ windows
Đây là run.py mà tôi đã cài đặt làm dịch vụ theo hướng dẫn trong liên kết ở trên.
from app import app
import win32serviceutil
import win32service
import win32event
import servicemanager
import socket
class AppServerSvc (win32serviceutil.ServiceFramework):
_svc_name_ = "Flask App"
_svc_display_name_ = "Flask App"
def __init__(self,args):
win32serviceutil.ServiceFramework.__init__(self,args)
self.hWaitStop = win32event.CreateEvent(None,0,0,None)
socket.setdefaulttimeout(60)
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.hWaitStop)
def SvcDoRun(self):
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
servicemanager.PYS_SERVICE_STARTED,
(self._svc_name_,''))
self.main()
def main(self):
app.run(host = '192.168.1.6')
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(AppServerSvc)
Tuy nhiên, khi tôi cố gắng để bắt đầu dịch vụ i nhận được thông báo:
"Các dịch vụ Flask App trên Local Computer bắt đầu và sau đó dừng lại Một số dịch vụ tự động dừng nếu họ không được sử dụng bởi. các dịch vụ hoặc chương trình khác. "
Bất kỳ ý tưởng nào tôi đang làm sai? Tôi đã thử nhiều tài khoản người dùng khác nhau - tôi không nghĩ đó là vấn đề về quyền.
Cảm ơn!
Cảm ơn bạn đã lấy mẫu mã! Tôi đã sử dụng thành công nó để _deploy_ trên máy chủ windows. Tuy nhiên tôi đã nhận được ** Lỗi máy chủ nội bộ ** và chỉ có thể giải quyết bằng 'os.chdir (os.path.dirname (os.path.realpath (__ file__))) ' - vấn đề là sau đây, tập lệnh đã được chạy từ một số thư mục 'win32' (như dịch vụ), do đó, tải bất kỳ tập tin (mong đợi là trong' dir' của kịch bản) gây ra một lỗi. – quapka