2012-07-06 171 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