当前位置: 技术问答>linux和unix
有关检测Linux上程序运行状态的问题
来源: 互联网 发布时间:2015-11-27
本文导语: 现在再编一个软件,该软件运行于一台Linux的服务器上,该软件负责在适当的时候启动另外一台装有Linux的服务器上的一个软件(该软件为一个轨道计算软件,计算量很大,要求的运行时间也很长),然后要监视这个软件...
现在再编一个软件,该软件运行于一台Linux的服务器上,该软件负责在适当的时候启动另外一台装有Linux的服务器上的一个软件(该软件为一个轨道计算软件,计算量很大,要求的运行时间也很长),然后要监视这个软件是否正常运行,一旦发现这个软件死掉(不再正常计算了或其他什么不正常的情况),就杀掉这个进程,并重新启动该软件
两台服务器都是Linux的,通过网线连在一个局域网内
请大侠们说说有什么编程方案可以完成这个软件的功能?
两台服务器都是Linux的,通过网线连在一个局域网内
请大侠们说说有什么编程方案可以完成这个软件的功能?
|
按我现在的服务器就是运行服务那台机器
写一个监控脚本,对那个服务进行监控,并把信息按时间写在一个文本或者数据库里边去
而且可以用这个监控对服务进行重起动作
另一台机器只是对这个监控信息进行获取,基本上没有多大作用
如果想做热备的话,可以采用心跳方式看看
写一个监控脚本,对那个服务进行监控,并把信息按时间写在一个文本或者数据库里边去
而且可以用这个监控对服务进行重起动作
另一台机器只是对这个监控信息进行获取,基本上没有多大作用
如果想做热备的话,可以采用心跳方式看看
|
写client-server方式,
服务器每隔一段时间向客户端查询该进程状态,客户端把该进程状态传送到
服务端,服务端分析判断,发出指令到客户端,客户端执行指令.
服务器每隔一段时间向客户端查询该进程状态,客户端把该进程状态传送到
服务端,服务端分析判断,发出指令到客户端,客户端执行指令.
|
写一个脚本 用 telnet 连接 ,然后ps 进程 或者监视那个程序的日志 然后处理
这样行吗
这样行吗
|
不需要编程,直接rsh执行就可以了。
|
同楼上。
平时我用的ssh,配置好key后(大致是把server的public key复制到~/.ssh/authorized_keys2里面),然后就可以运行远端命令而不用输密码,像这样:
ssh 192.168.1.1 ls /
平时我用的ssh,配置好key后(大致是把server的public key复制到~/.ssh/authorized_keys2里面),然后就可以运行远端命令而不用输密码,像这样:
ssh 192.168.1.1 ls /
|
那就RPC协议。
|
RPC协议需要在原来的程序中插入相关的RPC 服务端才可以用吧.
我觉得要捕捉一个程序的运行状况,就要知道这个程序的运行特征.比如说输出特征. 然后写一个程序来检查特征是否正常, 当然这个不能完全管用因为正常中的异常也是正常的。
至于采用如何通讯,应该是比较常规的。启动和关闭进程也是很简单的事情。
我觉得要捕捉一个程序的运行状况,就要知道这个程序的运行特征.比如说输出特征. 然后写一个程序来检查特征是否正常, 当然这个不能完全管用因为正常中的异常也是正常的。
至于采用如何通讯,应该是比较常规的。启动和关闭进程也是很简单的事情。
|
服务器用ssh ps监视客户端是否运行正常,如果不正常再用ssh重启你的程序。
|
不知道可否两端建立socket,服务器端定时监测客户端socket发回的状态信息。