通过crontab守护某个进程,防止进程挂掉或者存在多个进程

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/44

基本思路: 主要通过crontab来监控进程运行 1.先查看监控的进程的个数 2.如果进程个数大于1,说明进程被多次重启了,需要啥掉所有的进程 3.如果进程数等于0或者进程数大于1,重新启动进程。

缺点:不能达到进程挂了,立即启动,需要等到下一分钟,解决方法就是通过crontab实现秒级定时

#!/bin/bash
#脚本用于守护skywalking进程,防止进程挂掉
content="sky-php-agent"
count=`ps -ef | grep ${content} | grep -v grep | awk '{print $2}' | wc -l`

#if exist processid ,then kill
if [ $count -gt 1 ]; then
  ps -ef | grep ${content} | grep -v grep | awk '{print $2}' | xargs kill -9
fi

if [[ $count -eq 0 || $count -gt 1 ]]; then
  #start
  sky-php-agent --grpc=192.168.16.104:11800 --sky-version=7 --socket=/usr/local/php/var/run/sky-agent.sock &> /root/nohup.out
fi

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/44

上一篇:linux 18 定时任务


下一篇:Linux crontab 定时任务