linux 进程自重启,linux 进程监控和自动重启的简单实现

目的:linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能。

实现原理:由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志。

1、crontab修改

# crontab -e

*/ * * * * /mnt/bindmonitor.sh

2、/mnt/bindmonitor.sh 的实现

#! /bin/sh

host_dir=`echo ~` # 当前用户根目录

proc_name="/home/wkubuntu/named/sbin/named" # 进程名

file_name="/mnt/bindmonitor.log" # 日志文件

pid=

proc_num() # 计算进程数

{

num=`ps -ef | grep $proc_name | grep -v grep | wc -l`

return $num

}

proc_id() # 进程号

{

pid=`ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'`

}

proc_num

number=$?

if [ $number -eq ] # 判断进程是否存在

then

/home/wkubuntu/named/sbin/named -c /home/wkubuntu/named/etc/named.conf -n &

# 重启进程的命令,请相应修改

proc_id # 获取新进程号

echo ${pid}, `date` >> $file_name # 将新进程号和重启时间记录

fi

3、删除进程测试

a、#killall -15 named

b、5分钟后,cat /mnt/bindmonitor.log看看有无最新的记录,进程号与# ps -ef |grep named 进程号对应。

linux 进程监控和自动重启的简单实现(转)

目的:linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能. 实现原理:由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重 ...

Linux 进程终止后自动重启

/opt/a.sh #! /bin/bash ps -ef | grep python3 a.py | grep -v grep | grep python3 if [ $? -ne 0 ] then ...

linux 进程监控

linux 进程监控 supervise Supervise是daemontools的一个工具,可以用来监控管理unix下的应用程序运行情况,在应用程序出现异常时,supervise可以重新启动指定程 ...

tomcat监控,自动重启shell脚本

tomcat监控,自动重启shell脚本如下,取名 monitor_tomcat.sh: #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # 获取tomcat进程ID(其中 ...

C#通过代码彻底结束桌面进程explorer,解决自动重启问题

C# 通过代码 Process.Kill 方法杀死桌面进程后,会自动重启 其实可以通过 Taskkill 指令结束桌面进程, 在命令行查看 taskkill 帮助, TASKKILL [/S syst ...

centos 监控进程,并自动重启

编辑Crontab crontab -e 按i进行编辑 */ * * * * /root/monitor.sh # 每分钟运行一遍monitor.sh脚本 * * * /sbin/reboot # 每 ...

window下进程退出后自动重启

设计思想:编写批处理脚本监控进程的运行状态,如果发现进程停止,则自动重启该进程.批处理脚本(jk.bat)和进程脚本(hello.bat)如下: 1.jk.bat @echo off rem 定义需监 ...

Linux执行脚本让进程挂掉后自动重启

1 创建循环监听脚本  autostart.sh 例: 其中futures-market-server-v3andwebsoket.jar 是要监听的执行程序 #/bin/bashwhile true ...

随机推荐

Appium学习实践(三)测试用例脚本以及测试报告输出

之前Appium学习实践(二)Python简单脚本以及元素的属性设置中的脚本,会有一个问题,就是在每个测试用例完成之后都会执行tearDown,然后重新setUp,这样导致脚本的执行效率偏低,而且会有 ...

LuaFileSystem学习心得

LuaFileSystem(简称lfs)是一个用于lua进行文件訪问的库,和Lua版本号同步.且是跨平台的,在为lua安装lfs之前须要先安装luarocks, luarocks是一个用于安装lua库 ...

(Problem 53)Combinatoric selections

There are exactly ten ways of selecting three from five, 12345: 123, 124, 125, 134, 135, 145, 234, 2 ...

UI 常用(UIButton)

1.手势 UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@sele ...

ActiveMQ学习系列(四)----消息持久化到mysql

前记:目前学习还比较杂乱,还未找到系统化地学习ActiveMq的方法.在网上看到消息持久化的demo,了解了一下,在此记录. 一.目前ActiveMq支持的持久化方法 url:http://activ ...

Django 用户登陆访问限制 @login_required

#用户登陆访问限制 from django.http import HttpResponseRedirect #只有登录了才能看到页面 #设置方法一:指定特定管理员才能访问 def main(requ ...

virtuanenv+flask

1.virtualenv&flask 专门为特定项目创建一个目录和一个虚拟的Python 运行环境 # 1.安装 virtualenv$ pip3 install virtualenv #.创 ...

Bootstrap-Other:HTML编码规范

ylbtech-Bootstrap-Other:HTML编码规范 1.返回顶部 1. Bootstrap HTML编码规范 语法 用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得 ...

解决:IDEA springmvc maven 项目搭建完后没有生成 webcontent 目录

前言:发现项目创建好,配置好,写好测试代码,一看没有 webcontent 目录. 问题: 解决方案: ctrl + alt + Shift + S

关于在phpStudy环境下,windows cmd中 php不是内部命令问题

首先查看system32是否加入系统变量 其次要把当前运行的php版本的路径加入到系统变量中去,path中, 一定要是这个样子的: D:\phpStudy\php\php-5.6.27-nts 不然没 ...