博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Nginx] 在Linux下的启动、停止和重加载
阅读量:6844 次
发布时间:2019-06-26

本文共 2439 字,大约阅读时间需要 8 分钟。

Nginx的启动 

 
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
其中-c参数指定配置文件路径。
 

Nginx的停止

Nginx支持以下几种信号控制:
- TERM, INT 快速关闭
- QUIT 从容关闭
- HUP 平滑重启
- USR1 重新打开日志文件,在切割文件时用处大
- USR2 平滑升级
- WINCH 从容关闭工作进程
我们可以通过信号停止Nginx主进程,首先,我们需要通过ps -ef|grep命令获得master进程的PID,或者通过cat pid文件获得主进程号。下面是几个典型的停止语句:
#从容停止Nginx  kill -QUIT master进程号  #快速停止Nginx  kill -TERM master进程号  #强制停止Nginx  kill -9 master进程号

 

 

Nginx的重加载

如果改变了配置文件,想重启让其生效,同样可以通过发送系统信号给Nginx主进程,不过,在重启之前,要确认配置文件的语法是正确的,否则将不会加载新的配置项。
通过以下语句测试配置文件语法是否正确:
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

 

其中-t表示测试,并不真正执行。
然后,通过以下命令重加载Nginx配置:
kill -HUP master进程号
执行上面命令之后,Nginx运行新的工作进程,旧工作进程继续为已有的连接服务,等所有旧的连接成功后,旧的工作进程才被关闭。

Nginx的启动脚本

#!/bin/sh  # chkconfig: 2345 85 15  # description:Nginx Server    NGINX_HOME=/usr/local/nginx  NGINX_SBIN=$NGINX_HOME/sbin/nginx  NGINX_CONF=$NGINX_HOME/conf/nginx.conf  NGINX_PID=$NGINX_HOME/logs/nginx.pid    NGINX_NAME="Nginx"    . /etc/rc.d/init.d/functions    if [ ! -f $NGINX_SBIN ]  then      echo "$NGINX_NAME startup: $NGINX_SBIN not exists! "      exit  fi    start() {      $NGINX_SBIN -c $NGINX_CONF      ret=$?      if [ $ret -eq 0 ]; then          action $"Starting $NGINX_NAME: " /bin/true      else          action $"Starting $NGINX_NAME: " /bin/false      fi  }    stop() {      kill `cat $NGINX_PID`      ret=$?      if [ $ret -eq 0 ]; then          action $"Stopping $NGINX_NAME: " /bin/true      else          action $"Stopping $NGINX_NAME: " /bin/false      fi  }    restart() {      stop      start  }    check() {      $NGINX_SBIN -c $NGINX_CONF -t  }      reload() {      kill -HUP `cat $NGINX_PID` && echo "reload success!"  }    relog() {      kill -USR1 `cat $NGINX_PID` && echo "relog success!"  }    case "$1" in      start)          start          ;;      stop)          stop          ;;      restart)          restart          ;;      check|chk)          check          ;;      status)          status -p $NGINX_PID          ;;      reload)          reload          ;;      relog)          relog          ;;      *)          echo $"Usage: $0 {start|stop|restart|reload|status|check|relog}"          exit 1  esac
上面是nginx的启动脚本,只要把它拷贝至/etc/init.d目录下,就可以通过service nginx start等目录操作nginx。
除了上面介绍的直接发信号给Nginx主进程的方法之外,我们还可以通过nginx -s命令:
  • stop — fast shutdown
  • quit — graceful shutdown
  • reload — reloading the configuration file
  • reopen — reopening the log files
 
 

转载于:https://www.cnblogs.com/zl-graduate/p/6034697.html

你可能感兴趣的文章
firebug的使用方法
查看>>
Python基础知识两部曲:二
查看>>
cocos2d-x源码分析2
查看>>
[转载] 中华典故故事(孙刚)——38 最毒妇人心
查看>>
mybatis 与spring整合
查看>>
3-16高项作业本
查看>>
用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解
查看>>
线上Linux服务器运维安全策略
查看>>
macOS GDB调试报错
查看>>
vc中的字符转换
查看>>
Http上传与Ftp上传的区别详解
查看>>
SecureCRT使用命令在远程窗口中上传下载文件
查看>>
云终端惠普瘦客户机T410
查看>>
大四IT男孩的技术之梦
查看>>
无线网辐射
查看>>
linux运维工程师面试题
查看>>
使用PowerShell配置Hyper-v Server重复数据删除
查看>>
Skype For Business 2015实战系列13:安装Office Web App Server
查看>>
gevent的线程池
查看>>
zabbix安装(7)升级版本过程
查看>>