2014-09-06 41 views
2

創建下面的函數來關機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是否會殺死所有人?

+0

你正在運行哪個操作系統?你需要使用信號來殺死另一個進程。沒有全球cherrypy服務器。 – cyraxjoe 2014-09-06 05:36:43

+0

操作系統:Ubuntu 14.04 LTS。 – 2014-09-06 09:26:54

回答

2

CherryPy應用程序包含在普通的Python進程中。要將CherryPy應用程序視爲服務器(例如,您可以/etc/init.d/mysql stop的mysql,nginx等),您應該相應地部署它。

對於一個特設的情況下,只是告訴cherryd保存PID文件,--pidfile或直接集成PIDFile plugin到你的代碼。然後只是kill `cat /path/to/pidfile`

對於全面部署,請閱讀this answer

+0

我已經告訴你 - 使用PIDFile插件。像plugins.PIDFile(引擎,'/run/yourapp/yourapp.pid')。subscribe()''。請查看[櫻花來源](https://bitbucket.org/cherrypy/cherrypy/src/2a045705a5e403699aab915ab32ea8484f259fa1/cherrypy/cherryd?at=default#cl-39)。 – saaj 2014-09-08 15:06:40

+0

明白了,非常感謝。 – 2014-09-09 00:35:50