需求是这样的:我们在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服务重启了。

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

  1. 服务器如何挂网页游戏,在云服务器上挂网页游戏

    在云服务器上挂网页游戏 内容精选 换一换 安全组类似防火墙功能,是一个逻辑上的分组,用于设置网络访问控制.用户可以在安全组中定义各种访问规则,当云耀云服务器加入该安全组后,即受到这些访问规则的保护.入 ...

  2. linux 命令大全_11个炫酷的Linux终端命令大全

    今天给大家分享用了十年的Linux总结出来的11个炫酷的Linux终端命令大全,通过今天这篇文章我将向大家展示一系列的Linux命令.工具和技巧,希望能够帮助到大家. 1.命令行日常快捷键 如下的快捷 ...

  3. 操作系统原理,进程的基本状态,运行态,就绪态,等待态与转换模型,进程的其他状态,创建,终止,挂起与转换模型,Linux进程状态模型示例

    操作系统原理,进程的基本状态,运行态,就绪态,等待态与转换模型,进程的其他状态,创建,终止,挂起与转换模型,Linux进程状态模型示例 一.进程的三种基本状态: 运行态,就绪态,等待态 1.运行态: ...

  4. linux中的进程有哪三种基本状态,Linux下的进程有哪三种状态?()

    1.R (TASK_RUNNING)状态,可执行状态. 只有在该状态的进程才可能在CPU上运行.而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CP ...

  5. linux exec 二程序,二十五、Linux 进程与信号---exec函数

    25.1 介绍 在用 fork 函数创建子进程后,子进程往往要调用一种 exec 函数以执行另一个程序 当进程调用一种 exec 函数时,该进程完全由新程序代换,替换原有进程的正文,而新程序则从其 m ...

  6. 【Linux进程、线程、任务调度】一 Linux进程生命周期 僵尸进程的含义 停止状态与作业控制 内存泄漏的真实含义 task_struct以及task_struct之间的关系

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2: 780902027 文章目录 1 ...

  7. linux守护进程写法_搞懂进程组、会话、控制终端关系,才能明白守护进程如何创建...

    守护进程 概念: 守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程.周期性的执行某种任务或等待处理某些发生的事件. Linux系统有很多守护进程,大多数服务都是用守护进程实现的 ...

  8. Linux下QProcess不产生finished信号、waitforfinished阻塞超时【defunct进程】

    文章目录 项目场景: 问题描述以及分析过程: defunct(僵尸进程): QProcess的实现: 理论原因: 尝试修改一: 第一次痛定思痛: 尝试修改二: 第二次修改能满足要求: 使用startd ...

  9. Linux如何检测到僵尸进城,如何在linux下查看僵尸进程

    首先说说:僵尸进程是什么? 僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程.如果父进程先退出 ,子进程被init接管,子进程退出后ini ...

  10. linux感染十字符病毒,十字符病毒,杀不死的小强,一次云服务器沦陷实录

    一.现象 接到客户的电话,说自己的云服务器被提供商禁止访问了,原因是监测到网络流量暴满,服务器不停的向外发包,在确认客户没有业务量突增的情况下,初步判断可能服务器遭受了流量攻&击(DDOS), ...

最新文章

  1. Qt-4.6.3移植与Qt creator开发环境建立
  2. whereis命令查看你要添加的软件在哪里
  3. 自定义控件的子控件支持设计模式
  4. 笔记-项目沟通管理-沟通基本原则
  5. 一次难忘的产品发布经历
  6. M-SOLUTIONS Programming Contest 2020总结
  7. MYSQL性能调优及架构设计学习笔记-影响MYSQL性能的相关因素之实例分析
  8. pycharm 快捷键大全
  9. iOS8中添加的extensions总结(一)——今日扩展
  10. jQuery实现tab选项卡
  11. 【智能家居】智能单火开关目前普遍存在的问题
  12. spoj COT COT2
  13. FidMTF: An MTF Estimator (FidMTF:一种MTF估计方法)
  14. 微信小程序——微信小程序后台自定义分析,数据准确性分析
  15. 企业从哪里开始构建弹性 IT 基础架构
  16. GMS(Google Mobile Services)简介
  17. Xiaomi Redmi Note7刷机
  18. 架构 Varnish+Nginx+PHP(FastCGI)+MYSQL5+MemCache
  19. 计算机网络——面试复习
  20. SQL Server如何设置账号密码

热门文章

  1. CentOS7上实现Squid缓存服务器的两种模式
  2. Linux中命令行终端切换工具screen
  3. 关于Jquery ajax调用一般处理程序Handler报500 错误(Internal Server Error)解决办法
  4. 如何解决Silverlight跨域访问安全性问题
  5. ASP.NET 2.0使用Web Part创建应用程序之一(共二)
  6. mysql取第二大_mysql – SQL:从一行列中获取第二大值
  7. JavaBean实现简单登录功能
  8. 电子信息工程求职目标_广东海洋大学电子与信息工程学院电子信息工程专业欢迎你...
  9. 单元覆盖测试排除某些类烧苗_汽车嵌入式软件测试——嵌入式软件测试概述
  10. nyoj461 Fiboncci数列(4)解通项公式