如何关闭CherryPy

时间:2014-09-06 03:35:06

标签: cherrypy

我创建了以下函数来关闭cherrypy

import cherrypy
cherrypy.engine.exit()

文件名称:shutdown.py。然后我在命令行中输入命令python shutdown.py。出现以下消息:

[06/Sep/2014:11:28:22] ENGINE Bus STOPPING
[06/Sep/2014:11:28:22] ENGINE HTTP Server None already shut down
[06/Sep/2014:11:28:22] ENGINE No thread running for None.
[06/Sep/2014:11:28:22] ENGINE No thread running for None.
[06/Sep/2014:11:28:22] ENGINE Bus STOPPED
[06/Sep/2014:11:28:22] ENGINE Bus EXITING
[06/Sep/2014:11:28:22] ENGINE Bus EXITED

然而,CherryPy仍然在运行。我如何关闭CherryPy?

另外,如果我同时运行多个cherrypy服务器怎么办? shutdown.py会杀死所有人吗?

2 个答案:

答案 0 :(得分:2)

CherryPy应用程序包含在普通的Python进程中。要将CherryPy应用程序视为服务器(例如mysql,nginx等,您可以/etc/init.d/mysql stop),您应该相应地部署它。

对于临时案例,只需告诉cherryd pid 文件保存为--pidfile或直接将PIDFile plugin集成到您的代码中。然后只需kill `cat /path/to/pidfile`

对于完整的部署,请阅读this answer

答案 1 :(得分:0)

这个问题是6年前的,但我想回答一些重要的问题。关闭Cherrypy服务器的最佳方法是在代码中设置以下配置:

cherrypy.config.update({ 'server.shutdown_timeout': 1 })

通过这种方式,您可以确定服务器已关闭,您可以在此issue中了解有关该服务器的更多信息。因此,我希望这可以对某人有所帮助。