C'è un modo in python per cambiare la porta utilizzata da e forzare il riavvio del server Web (non apache, cherrypy)?Cambiare la porta Cherrypy e riavviare il server Web
7
A
risposta
15
Dai un'occhiata allo cherrypy.process.servers. Si può provare qualcosa di simile:
import cherrypy
cherrypy.config.update({'server.socket_port': 8099})
cherrypy.engine.restart()
4
Se non si desidera sostituire l'intero processo (che è quello che cherrypy.engine.restart()
fa), si potrebbe fare:
import cherrypy
cherrypy.engine.stop()
cherrypy.server.httpserver = None
cherrypy.config.update({'server.socket_port': 8099})
cherrypy.engine.start()
impostazione httpserver a è necessaria None oppure la chiamata cherrypy.engine.start()
riutilizzerà solo l'host/porta che ha già, piuttosto che raccogliere la configurazione modificata. Non sono sicuro se ciò avvenga in modo inappropriato su un dettaglio di implementazione, però.
Mentre sono d'accordo, questa dovrebbe essere la risposta corretta, ho scoperto che semplicemente facendo un aggiornamento di configurazione e poi richiamando il riavvio sul mio server ha causato il blocco dei messaggi: "Aspettando che i sottoprocessi terminino ..." e "In attesa di thread Thread-1.". Non so perché questo sarebbe. – user975326