William Troup
William Troup

Reputation: 13131

Change Cherrypy Port and restart web server

Is there a way in python to change the port that cherrypy is using and force the web server (not apache, cherrypy) to restart?

Upvotes: 11

Views: 14089

Answers (2)

Eric Smith
Eric Smith

Reputation: 2899

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.

Upvotes: 9

Reto Aebersold
Reto Aebersold

Reputation: 16624

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()

Upvotes: 21

Related Questions