Nginx的启动、停止、平滑重启
分类:运维技术日期:2012-02-24 - 22:42:34作者:老谢
启动Nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
停止Nginx
可以发送向通信号给Nginx主进程的方式来停止Nginx,操作如下:
CentOS release 5.7 (Final)
[root@vps ~]# ps -ef | grep nginx #查询master process主进程号
root 3266 1 0 Feb20 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody 3267 3266 0 Feb20 ? 00:00:01 nginx: worker process
root 9282 9239 0 20:51 pts/0 00:00:00 grep nginx
[root@vps ~]# kill -QUIT 3266 #从容停止Nginx
root 3266 1 0 Feb20 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody 3267 3266 0 Feb20 ? 00:00:01 nginx: worker process
root 9282 9239 0 20:51 pts/0 00:00:00 grep nginx
[root@vps ~]# kill -QUIT 3266 #从容停止Nginx
主进程可以处理以下的信号:
TERM, INT | 快速关闭 |
QUIT | 从容关闭 |
HUP | 重载配置 用新的配置开始新的工作进程 从容关闭旧的工作进程 |
USR1 | 重新打开日志文件 |
USR2 | 平滑升级可执行程序。 |
WINCH | 从容关闭工作进程 |
尽管你不必自己操作工作进程,但是,它们也支持一些信号:
TERM, INT | 快速关闭 |
QUIT | 从容关闭 |
USR1 | 重新打开日志文件 |
nginx.pid这个文件默认存放在Nginx安装目录logs目录下,该文件就是保存了Nginx当前的主进程号,可以直接向它发送系统信号,所以可以这样操作:
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid` #注意这里是`而不是’
快速停止Nginx
kill -TERM `cat /usr/local/nginx/logs/nginx.pid`
平滑重启Nginx
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
0.0 不懂Linux~~
@朱定聪的博客 这个可以懂~
我一般写成/etc/init.d/下的服务脚本。这样可以直接使用
service nginx restart
service nginx reload
这样的方式来重启或者重新加载nginx配置文件。
@dave 嗯,用脚本方便多了