本文为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