Is there a way in python to change the port that cherrypy
is using and force the web server (not apache, cherrypy) to restart?
If you don't want to replace the whole process (which is what cherrypy.engine.restart()
does), you could do:
import cherrypy
cherrypy.engine.stop()
cherrypy.server.httpserver = None
cherrypy.config.update({'server.socket_port': 8099})
cherrypy.engine.start()
Setting httpserver to None is needed or the cherrypy.engine.start()
call will just reuse the host/port it already has rather than picking up the changed configuration. I'm not sure if that is inappropriately taking advantage of an implementation detail, though.
Have a look at cherrypy.process.servers. You can try something like this:
import cherrypy
cherrypy.config.update({'server.socket_port': 8099})
cherrypy.engine.restart()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With