我想有一个Web服务器显示我的2个python脚本的状态。 这些脚本侦听特定端口上的传入数据。我想要做的是让脚本运行时,Web服务器将返回一个HTTP200,当脚本没有运行500.我已经看过cherrypy和其他这样的python web服务器,但我不能让他们先运行,然后在Web服务器运行时继续我的其余代码。我希望如此,如果脚本崩溃,那么Web服务器也是如此。或者,如果脚本正在运行,则Web服务器显示的方式是在HTML中仅显示1的空白网页,如果不是,则为0。 有什么建议吗?
提前致谢。
答案 0 :(得分:2)
我会进一步分开:
现有的程序都是这样做的 - Nagios会想起来。
答案 1 :(得分:2)
实际上我只是回答了一个类似于这个问题的问题,想法是运行脚本A并让它中断运行你想要的脚本的2个线程,然后让网页执行:
import threading, cherrypy
from cherrypy import expose
class thread1(threading.Thread):
def run(self):
#code for script 1 goes here
class thread2(threading.Thread):
def run(self):
#code for script 2 goes here
t1 = thread1()
t2 = thread2()
t1.start()
t2.start()
@expose
def check(self):
if t1.isAlive() and t2.isAlive():
return "1"
return "0"
我建议你把nginx或apache放在其中,因为它们是反向代理。
现在有两种方式可以告诉你其中一个停止了。要么它会显示1,两者都运行良好。如果一个或两个停止但是设法保持脚本的其余部分运行,则为零。或者nginx / apache会给你一个500错误,说后端服务器(即:cherrypy)崩溃,这意味着整个脚本停止工作。