最近在Linux 上运行c++编译的服务,为了防止在运行过程中偶尔出现服务异常导致进程宕掉就取巧的方式做了个进程守护,保障服务永远在线。
此文也适用于python脚本服务、nodejs脚本服务等其他非系统服务的服务的进程守护、监控及自动启动。
实现方法说明:使用keepalived实现sh脚本的监控从而实现对服务状态的实时监管,发现对应状态变化则通过sh脚本自动触发对应执行命令从而实现进程守护。
不废话了,直接上步骤如下:
背景:
当前我有一个C++服务cshiservice,我无法把它加到系统的启动进程,当前启动方式如下:
$/home/cshiservice paramsl > nohup.out 2>&1 &
我需要把该服务做个进程守护,发现进程消失则立刻执行启动命令,保证进程永远在线;
第一步:部署keepalived:
$yum install curl gcc openssl-devel libnl3-devel net-snmp-devel
$yum install keepalived #安装keepalived
$service keepalived start #启动方式
$chkconfig keepalived on #开机启动
$ps aux | grep keepalived #检查是否OK
root 43901