Nginx在Linux下的启动、停止和重加载

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

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/web/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, nginx
, 进程
, 配置
, nginx.conf
, reload
, nginx
, nginx平滑升级
, nginx进程
, nginx命令
, nginx.pid
, nginx1.10.1
HUP信号
linux停止nginx服务、linux nginx 停止、linux nginx停止命令、linux nginx 重新加载、linux下停止nginx,以便于您获取更多的相关知识。

时间: 2024-10-03 04:52:46

Nginx在Linux下的启动、停止和重加载的相关文章

在Linux下的启动、停止和重加载

  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|g

linux下驱动模块化编译,动态加载以及卸载

步骤:: 1.编写first_driver_hello.c文件,将其放在/linux2.6.32/drivers/char路径下: 2.在/linux2.6.32/drivers/cha/Kconfig文件中添加如下语句:   3.在/linux2.6.32/drivers/cha/Makefile文件中添加如下语句:   4.编译模块:          在控制台中进入到/linux2.6.32目录          Make  ARCH=arm  CROSS_COMPILE=arm-none

RedHat Linux下Oracle启动脚本的建立 dbstart oracle8.1.6

oracle|脚本 RedHat Linux下Oracle启动脚本的建立 2001-06-05 8:25发布者:Crystal 阅读次数:102 一.修改$ORACLE_HOME/bin/dbstart脚本 首先测试你的$ORACLE/bin/dbstart脚本,如果能正常启动Oracle,请跳到第二部分. 本人运行环境为RedHat7.1+Oracle8.1.6,发现dbstart脚本有问题,不能得到当前运行的Oracle的版本号.编辑dbstart,找到 STATUS=1 if [ "$VE

linux下开机启动DB2,WAS,TDS服务

  linux下开机启动DB2,WAS,TDS服务 参考链接: http://www.2cto.com/database/201207/141858.html www.2cto.com http://www.2cto.com/os/201207/141862.html 1.转到/etc/init.d 目录下. 以root身份执行 Shell代码 cd /etc/init.d 2.编写DB2启动脚本 Shell代码 vi startDB2 输入以下内容 Shell代码 #!/bin/sh # ch

linux下如何启动codeblocks

问题描述 linux下如何启动codeblocks 刚刚在linux下安装了codeblocks,却不知该如何启动,在终端输入codeblocks,结果显示没有这条命令,也找不到可执行文件,求大神指教以及如何在桌面创建快捷方式 解决方案 Linux下CodeBlocks的交叉编译 解决方案二: linux有linux的启动方式.你要找到codeblocks的安装目录,进入 bin 目录或者sbin目录,然后启动

hibernate3-tomcat启动一项hibernate加载项启动时间太长

问题描述 tomcat启动一项hibernate加载项启动时间太长 tomcat日志截码: Oct 08, 2014 11:58:50 AM org.hibernate.type.BasicTypeRegistry register INFO: Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@a5eeb86 Oct 08, 2014 12:02:0

存储区域网络-怎样让Windows在启动时不默认加载san磁盘

问题描述 怎样让Windows在启动时不默认加载san磁盘 172.30.1.9是服务器,在旁边有一个存储,172.30.1.9的h盘属于外置存储的盘,上网查下并且验证怎么样能够让windows启动时不默认加载这个属于存储的磁盘.

Android ListView下拉刷新上拉自动加载更多DEMO示例_Android

代码下载地址已经更新.因为代码很久没更新,已经很落伍了,建议大家使用RecyclerView实现. 参考项目: https://github.com/bingoogolapple/BGARefreshLayout-Android https://github.com/baoyongzhang/android-PullRefreshLayout 下拉刷新,Android中非常普遍的功能.为了方便便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能.设计最初是参考开源中国的And

Android ListView下拉刷新上拉自动加载更多DEMO示例

代码下载地址已经更新.因为代码很久没更新,已经很落伍了,建议大家使用RecyclerView实现. 参考项目: https://github.com/bingoogolapple/BGARefreshLayout-Android https://github.com/baoyongzhang/android-PullRefreshLayout 下拉刷新,Android中非常普遍的功能.为了方便便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能.设计最初是参考开源中国的And