当前位置:   article > 正文

【shell脚本】进程守护脚本_shell守护进程脚本

shell守护进程脚本

配置config.ini:

#进程名|部署路径(启动路径)|启动命令
./redis-server 127.0.0.1:6379|/root|/root/redis/start.sh

脚本主体:

  1. #!/bin/bash
  2. #. ~/.bash_profile
  3. #################配置#####################
  4. #监控的用户
  5. login_user=ddxx
  6. #配置文件路径
  7. file_config_path=./config.ini
  8. #################配置#####################
  9. #统计
  10. proc_count(){
  11. file_conf=$1
  12. if [ -f "$file_conf" ];then
  13. cat $file_conf |grep -v ^# | grep -v "^$" | while read line
  14. do
  15. proc_flag=`echo $line | awk -F '|' '{print $1}'`
  16. proc_path=`echo $line | awk -F '|' '{print $2}'`
  17. proc_cmd=`echo $line | awk -F '|' '{print $3}'`
  18. #调用统计进程函数,参数中有空格,一定要双眼号
  19. process_num=`ps -fu $login_user | grep "$proc_flag" | grep -v grep | wc -l`
  20. echo $proc_flag"进程数为:"$process_num
  21. if [ $process_num -ge 1 ];then
  22. echo $proc_flag"进程存在!!!"
  23. else
  24. echo $proc_flag"进程不存在,进程异常,启动进程!!!"
  25. #执行命令
  26. cd $proc_path;$proc_cmd
  27. fi
  28. done
  29. else
  30. echo "$file_conf"配置文件不存在
  31. fi
  32. }
  33. #检查是否已有脚本在运行,避免进程卡死
  34. self_num=`ps -fu $login_user | grep monitor_moddleware.sh(自身脚本名称) | grep -v grep | wc -l`
  35. echo $self_num
  36. if [ $self_num -gt 5 ];then
  37. echo "已有脚本在运行"
  38. exit
  39. else
  40. echo "继续执行脚本"
  41. proc_count $file_config_path
  42. fi

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号