监控某个程序,以nginx为例:
a=1
while ((a<2))
do
nginx_process_num=$(ps -ef | grep nginx | grep -v grep | wc -l)
# 判断进程是否存在,不存在就启动Nginx
if [ $nginx_process_num -eq 0 ]; then
cd /usr/local/nginx/sbin/
./nginx -c /usr/local/nginx/conf/nginx.conf
echo "$(date +%Y%m%d-%H%M)重启了"
else
echo "$(date +%Y%m%d-%H%M)状态正常"
fi
sleep 1m
done
监控某个端口:以8888为例
a=1
while ((a<2))
do
process_num=$(netstat -an | grep ":8888" | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l)
# 判断进程是否存在,不存在就启动Nginx
if [ $process_num -eq 0 ]; then
cd /root
./reloadScg.sh
echo "$(date +%Y%m%d-%H%M)重启了"
else
echo "$(date +%Y%m%d-%H%M)正常运行"
fi
sleep 2m
done