Linux进程突然挂死,小玩意:如何让linux上挂死的进程重启?

需求是这样的:我们在linux服务器上有一个采集进程,担心该进程出现故障挂死或者被人误杀,这种情况下需要能自动重启。使用peacemaker这样的分布式管理工具可以做到进程的监控,但毕竟体量较大,部署也稍嫌麻烦。

其实,使用keepalived就可以满足这种需求,部署起来也很简单,做个记录供以后查阅。

1、安装keepalived

2、配置keepalived检测

修改/etc/keepalived/keepalived.conf

vrrp_script check_dtm {

script "/etc/keepalived/check_dtm.sh"

interval 1

weight -5

fall 3

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

}

track_script {

check_dtm

}

}

如上配置,对VI_1实例配置track脚本,每秒检测一次,实际检测的脚本是check_dtm.sh。

由于我们只是使用keepalived的check功能,所以virtual_address和virtual_server的功能都不需要,相关配置全部删除。

3、配置检测脚本check_dtm.sh

#!/bin/bash

ps aux|grep dtmonitor|grep java

if [ $? != 0 ] ; thenecho "dtmonitor is down, try to restart."

bash /opt/dtmonitor/monitor/start.sh

fi

真正做到重启的地方。简单来说,检查进程是否还在(当然可以做的粒度更准确一些,例如定时写一些文件之类),如果进程没了,则调用采集进程的启动脚本,尝试重启。

4、采集进程的启动脚本。

在采集进程的目录中(即/opt/dtmonitor/monitor/)编辑start.sh文件:

#!/bin/bash

CURDIR="`dirname $0`"

java -jar $CURDIR/dtmonitor.jar &

echo "dtmonitor is started."

注意当前目录的切换。

如上,启动keepalived服务后,杀死dtmonitor进程,可以观察到1s左右dtmonitor进程被keepalived服务重启了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值