Nginx启停脚本
Nginx启停脚本
vim nginx_tools.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #! /bin/sh NGINX_HOME= /usr/local/nginx function help() { echo "Usage: nginx_tools reload|restart|stop|start|term|show|relog" echo -e "\treload\t重新载入配置,主进程不停止,工作进程重启" echo -e "\trestart\t重启nginx" echo -e "\tstop\t停止nginx,但等待交易处理完毕" echo -e "\tstart\t启动nginx" echo -e "\tterm\t立即停止nginx" echo -e "\tshow\t查看nginx进程状态" echo -e "\trelog\t重新打开日志文件,不影响交易" exit 1 } #如果参数1为空,则走help() if [ -z $1 ]; then help fi if [ -e $NGINX_HOME /logs/nginx .pid ]; then #如果nginx.pid文件存在 nginx_pid=` cat $NGINX_HOME /logs/nginx .pid 2> /dev/null ` else #否则通过grep过滤出Nginx的进程号 nginx_pid=$( ps -ef | grep -w ` whoami ` | grep -w "nginx:" | grep -w master | grep -vw grep | awk '{print $2}' ) fi #如果nginx进程不存在 if [ -z $nginx_pid ]; then if [ "$1" == "reload" ] || [ "$1" == "restart" ] || [ "$1" == "relog" ]; then #等待输入,10s read -p "nginx未启动,是否启动:[Y/N] " -t 10 option if [ $? - ne 0 ]; then echo -e "\n超时未选择,自动退出" exit 2 fi if [ "$option" == "Y" ]; then $NGINX_HOME /sbin/nginx exit 0 else exit 3 fi elif [ "$1" == "stop" ] || [ "$1" == "term" ] || [ "$1" == "show" ] ; then echo "nginx已经停止" exit 4 fi fi case $1 in reload) kill -HUP $nginx_pid ;; restart) kill -QUIT $nginx_pid sleep 2 $NGINX_HOME /sbin/nginx ;; stop) kill -QUIT $nginx_pid ;; start) if [ -z $nginx_pid ]; then $NGINX_HOME /sbin/nginx else echo "nginx已经启动" fi ;; term) kill -TERM $nginx_pid ;; show) date + "%F %X" ps -faux | grep -w ` whoami ` | grep -w "nginx:" | grep - v grep ;; relog) kill -USR1 $nginx_pid ;; *) echo "暂不支持的选项" help ;; esac exit 0 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通