zoukankan      html  css  js  c++  java
  • linux 进程监控和自动重启的简单实现

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

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

    1、crontab修改

    # crontab -e
    */5 * * * * /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=0
    
    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 0 ]                                    # 判断进程是否存在
    then 
        /home/wkubuntu/named/sbin/named  -c /home/wkubuntu/named/etc/named.conf -n 1 &
                                                            # 重启进程的命令,请相应修改
        proc_id                                         # 获取新进程号
        echo ${pid}, `date` >> $file_name      # 将新进程号和重启时间记录
    fi

    3、删除进程测试

    a、#killall -15 named

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

  • 相关阅读:
    取最小未用的账号
    Oracle 同义词
    RMAN备份报 RMAN-06059 错误
    Oracle11g memory_target
    基础记录
    uboot启动流程
    android有关生命周期探讨
    can协议
    java虚拟机
    内存管理机制
  • 原文地址:https://www.cnblogs.com/fatt/p/4974756.html
Copyright © 2011-2022 走看看