当前位置:八联网络科技帮助中心 > 主机常见问题 > 独立服务器
帮助流程
如果在使用我们的产品中遇到问题,建议您在“常见问题”中查询解决方法;
如果没有找到该问题的解决方法,您可以在“问题搜索”中进行搜索;
如果搜索后没有找到满意答案,您可以“在线客服”,我们会尽快给您答复。
香港服务器系统小知识:如何让linux上挂死的进程重启?
作者:客服中心 文章来源:八联网络科技 更新时间:2017-07-12

香港服务器系统小知识, 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

由于我们只是使用keepalivedcheck功能,所以virtual_addressvirtual_server的功能都不需要,相关配置全部删除。

3、配置检测脚本check_dtm.sh

#!/bin/bash

ps aux|grep dtmonitor|grep java

if [ $? != 0 ] ; then

echo "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服务重启了。更多香港服务器知识,可登入八联网络www.8lian.cn官网进行了解。