Sto utilizzando il modello trovato qui: Is it possible to run a Python script as a service in Windows? If possible, how?Deploy Flask app come servizio Windows
Ecco la mia run.py, che ho installato come un servizio seguendo le istruzioni nel link qui sotto.
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)
Tuttavia, quando provo ad avviare il servizio ottengo il messaggio:
"Il servizio Flask App sul computer locale avviato e quindi arrestato Alcuni servizi si arrestano automaticamente se non sono in uso da. altri servizi o programmi. "
Qualche idea su cosa sto facendo male? Ho provato vari account utente - non penso che sia un problema di autorizzazione.
Grazie!
Grazie per il codice di esempio! L'ho usato con successo su _deploy_ su windows server. Tuttavia stavo ottenendo ** Errore interno del server ** ed ero in grado di risolvere solo con 'os.chdir (os.path.dirname (os.path.realpath (__ file__))) ' - il problema era il seguente, lo script è stato eseguito da una cartella 'win32' (come il servizio), quindi caricare qualsiasi file (aspettandosi di trovarsi nella' dir' dello script) ha causato un errore. – quapka