我创建了以下函数来关闭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
会杀死所有人吗?
答案 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中了解有关该服务器的更多信息。因此,我希望这可以对某人有所帮助。