这是一个用于监测nginx运行状态的脚本,当nginx运行异常被结束掉之后,脚本会自动尝试重启nginx进程。
脚本适用于某些不太稳定的Linux系统分支或者其他奇葩状况的环境。
将以下脚本保存为nginx_d.sh并且赋予可执行权限:
vim nginx_d.sh && chmod +x nginx_d.sh
脚本如下:
#!/bin/bash #$$表示当前shell的pid号,需要过滤掉(防止当前shell脚本名字包含nginx的字符) ps -ef|grep nginx|grep -vE "grep|$$" >/dev/null #直接通过$?获取上一句shell执行的状态 if [ $? -eq 0 ];then echo "Nginx is running" else #以下情况三选一就行了 # 1-适用于基于init的旧版本系统 service nginx restart # 2-适用于基于sysv的新版本系统 systemctl restart nginx # 3-适用啥都没写手动重启的方法 killall nginx && nginx echo "Nginx is down,Starting..." fi
使用起来推荐与系统任务计划cron搭配进行,添加cron计划命令如下:
crontab -e
然后再接下来的编辑器中输入:
*/1 * * * * bash /home/andyx/autoshell/nginx_d.sh
解释为每分钟执行一次nginx_d.sh脚本
以上,END。