更改Cherrypy端口并重新启动web服务器

问题描述:

有没有办法在python中更改端口cherrypy正在使用并强制web服务器(而不是apache,cherrypy)重新启动?更改Cherrypy端口并重新启动web服务器

看一看cherrypy.process.servers。你可以尝试这样的事情:

import cherrypy 
cherrypy.config.update({'server.socket_port': 8099}) 
cherrypy.engine.restart() 
+0

虽然我同意,这应该是正确的答案,我发现,简单地做一个配置更新,然后我的服务器上调用重启导致它获得“卡住”与消息:“正在等待子线程终止......”和“等待线程的线程1。”不知道为什么会这样。 – user975326

如果你不想更换整个过程(这是什么cherrypy.engine.restart()做),你可以这样做:

import cherrypy 
cherrypy.engine.stop() 
cherrypy.server.httpserver = None 
cherrypy.config.update({'server.socket_port': 8099}) 
cherrypy.engine.start() 

设置的httpserver到需要的无或cherrypy.engine.start()呼叫只会重用已有的主机/端口,而不是拿起更改的配置。我不知道这是不恰当服用的实现细节的优点,虽然。