首页服务器Web服务器 详解Linux监控重要进程的实现方法

详解Linux监控重要进程的实现方法

不管后台服务程序写的多么健壮,还是可能会出现core dump等程序异常退出的情况,但是一般情况下需要在无 人为干预情况下,能够自动重新启动,保证服务进程能够服务用户。这时就需…

不管后台服务程序写的多么健壮,还是可能会出现core dump等程序异常退出的情况,但是一般情况下需要在无

人为干预情况下,能够自动重新启动,保证服务进程能够服务用户。这时就需要一个监控程序来实现能够让服务进程自动重新启动。查阅相关资料及尝试一些方法之后,总结linux系统监控重要进程的实现方法:脚本检测和子进程替换。

1、脚本检测

(1) 基本思路: 通过shell命令(ps -e | grep "$1" | grep -v "grep" | wc -l) 获取 $1 ($1 代表进程的名字)的进程数,脚本根据进程数来决定下一步的操作。通过一个死循环,每隔几秒检查一次系统中的指定程序的进程数,这里也可使用crontab来实现。

(2) 具体实现过程的代码如下: [ supervisor.sh ]

#! /bin/sh # supervisor process   LOG_FILE=/var/log/supervisor_sh.log  # log function  function log() {   local t=$(date +"%F %X")   echo "[ $t ] $0 : $1 " >> ${LOG_FILE} }  # check process number  # $1 : process name  function check_process() {   if [ -z $1 ]; then     log "Input parameter is empty."     return 0      fi      p_num=$(ps -e | grep "$1" | grep -v "grep" | wc -l)   log "p_num = $p_num"    echo $p_num }  # supervisor process  while [ 1 ] do    declare -i ch_num   p_name="apache2"   ch_num=$(check_process $p_name)   if [ $ch_num -eq 0 ]; then     killall $p_name     service $p_name start    fi   sleep 3  done 
本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/fwq/web/1883.html
上一篇详解Docker下使用Elasticsearch可视化Kibana
下一篇 CentOS服务器平台搭建mysql主从复制与读写分离的方法
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部