2012-07-06 172 views
2

我有一個啓動cherrypy的進程運行一個任務,然後需要檢查它是否仍在運行或已完成任務。我正在運行python 2.6.7檢查cherrypy是否有效

while True: 
     if t1.isAlive(): 
      cherrypy.engine.start() 
     else: 
      cherrypy.engine.stop() 
      print "server down" 

回答

2

有幾種方法可以做到這一點。這取決於你真正想要的。你想檢查一個過程是否仍然存在並且踢腳踢,還是需要一些反饋信息?

或者你只需​​要檢查輸出(文件/日誌/數據庫)?給我們更多的信息。一些代碼示例將澄清你的問題

我想你可以看看PIDFile插件。有了這個插件,您甚至可以執行多進程或獨立於哪個進程啓動cherrypy-instance的檢查。

就在開始之後,您將初始化pidfile-plugin並檢查文件是否存在。只有提醒,它可能會阻止殭屍進程或者pidfile沒有被擦除。

+0

目前我有: 而真: \t如果t1.isAlive(): \t \t cherrypy.engine.start() \t其他: \t \t cherrypy.engine.stop() \t \t打印「服務器關閉」 其中我有cherrypy.engine.start()我希望它檢查它是否已經運行,如果是這樣,只是繼續,如果不啓動它。 – 2012-07-06 10:13:37

+0

不要回答評論,只是更新你的第一個問題。所以你的櫻桃和你的線程運行在同一個過程? – 2012-07-07 11:48:37

+0

對不起,Cherrypy在調用線程中,主代碼是一個子線程。 – 2012-07-07 18:40:49