|
环境:
win下开发的两个服务层利用linux的兼容层class启动,设定最多程数20,发现运行不稳定,常被挂起,而且php调用时,如果用户过多的话,部分用户无法看到结果(可能是正在队列中),要求自动判断并进行重连(但是如果确实是被挂起了,就不停的循环了,惨乐,需要个自动重起的家伙)
上次的watchdog是这样的:
作个shell脚本调用最小处理服务,成功的话则在指定的位置生成文件,然后去判断文件是否存在(多亏两位版主大哥的指点,过年放假了,你们休息之余再来拉兄弟一把吧),如存在则删除文件并睡眠然后返回重来,如果不存在则杀死所有被兼容层启动的服务,并顺序重起
缺点:如果是在队列状态就很危险
状态:目前更换了服务器还是不行,而且没人力资源重新优化服务层
所以想重新作个watchdog:
shell脚本定期去 ps axT | grep class > out.txt
然后再 ction.sh < out.txt
删除 out.txt
睡眠并返回
action.sh判断out.txt中是否有内容
没有则认为未启动服务并启动
有则逐行判断状态是否为正常
如为否则杀死该进程
判断是否所有均为异常
是则重新启动服务
返回
碰到的问题:如何自字符串中提取状态?
例如:
8 ? SW 0:02 [kupdated]
我需要中间的哪个 SW |
|