zoukankan      html  css  js  c++  java
  • 死循环判断进程是否存活脚本

      脚本如下:

    #/bin/bash
    SLEEPTIME=3
    software=httpd
    rpm -q psmisc &>/dev/null || ( yum install psmisc -y )&>/dev/null
    #sleep 5
    while :;do
        if ! killall -0 $software &> /dev/null;then
        systemctl restart $software &>/dev/null
        echo "At `date +'%F %T'`$software is restart " >> /var/log/${software}.log
        fi
        sleep $SLEEPTIME
    done

      解释如下:

    SLEEPTIME=3

      执行循环的时间,时间单位秒,变量方便修改,(时间为1也行,但实际重启服务1秒不一定能重启完成)

    software=httpd

      判断是否存活的服务名

    rpm -q psmisc &>/dev/null || ( yum install psmisc -y )&>/dev/null

      使用killall -0 判断服务是否存活,这里在循环前先判断psmisc服务是否存在,不存在则安装它

    while :;do

      使用while循环,这里的冒号是什么也不做直接返回正确,冒号处使用true也行

    if ! killall -0 $software &> /dev/null;then

      使用killall -0 探测httpd是否存活,&>/dev/null 输出的东西不显示在桌面上,这里用变量可以方便修改

     systemctl restart $software &>/dev/null

      重启服务,将输出信息重定向到垃圾箱中

    echo "At `date +'%F %T'`$software is restart " >> /var/log/${software}.log

      当服务重启后,直接在对应的日志文件中追加日志信息

     fi

      if语句相对应

    sleep $SLEEPTIME

      休眠,可以理解为多少秒执行一次,这里的变量值是3,则表示3秒循环一次

    done

      do 语句想对应

    ------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------- 博客均为个人笔记,无所追求,仅供参考~~~ QQ--2382990774
  • 相关阅读:
    Vue
    自定义分页器
    selenium-确认进入了预期页面
    PyCharm常用快捷键(pycharm使用教程)
    Linux命令大全|linux常用命令
    ADB常用命令(adb常用命令)
    关于界面库
    VMWARE player 如何让 win2012 guest os 支持HYPER-V
    关于中文域名转码
    注册表中LEGACY残留项的清理技巧
  • 原文地址:https://www.cnblogs.com/alexlv/p/14921604.html
Copyright © 2011-2022 走看看