计算机网络/计算机科学与应用/系统/运维/开发

Nginx 启动停止操作

一、信号控制

Nginx在运行时,会保持一个主进程和多个worker process工作进程,给主进程发送信号就可以控制服务器的启停操作


首先要知道主进程的进程号PID,获取pid有2种途径

1、Nginx服务启动后,默认在安装目录下logs目录产生一个nginx.pid的文件,该文件保存了服务主进程的PID

[root@node-a nginx]# cd logs/
[root@node-a logs]# ll
total 13236
-rw-r--r-- 1 root root 8662965 Dec 24 09:49 access.log
-rw-r--r-- 1 root root 4876922 Dec 24 05:21 error.log
-rw-r--r-- 1 root root       5 Nov 11 15:17 nginx.pid
[root@node-a logs]# cat nginx.pid 
8374
[root@node-a logs]# pwd
/usr/local/nginx/logs


2、通过ps -ef|grep nginx 查看主进程的PID

ps -ef | grep nginx

[root@node-a logs]# ps -ef | grep nginx
root      8374     1  0 Nov11 ?        00:00:00 nginx: master process nginx
nobody   16916  8374  0 Dec22 ?        00:00:00 nginx: worker process
root     19583 19514  0 10:06 pts/0    00:00:00 grep --color=auto nginx

可以看出PID进程号为8374

二、信号处理

TERM或INT    快速停止Nginx服务
QUIT         平缓停止Nginx服务
HUP          使用新的配置文件启动进程,之后平缓停止原有进程,称为平滑启动
USR1         重新打开日志文件,常用于日志切割
USR2         使用新版本的Nginx文件启动服务,之后平缓停止原有的Nginx进程,平滑升级
WINCH        平缓停止worker process 用于Nginx服务器平滑升级


向Nginx服务主进程发送信号的2种方式:

1、使用Nginx二进制文件

2、使用kill命令发送信号

kill  SIGNAL PID

SIGNAL 指定信号的值

PID 指定服务主进程的PID,也可以使用nginx.pid动态获取PID号

kill SIGNAL `filepath`

filepath 表示nginx.pid的路径


三、Nginx服务的启动

linux平台下,启动nginx服务器直接运行安装目录下的sbin命令二进制即可

# ./sbin/nginx -h
# ./nginx -V
-v用来显示Nginx服务器的版本号;
-V除了显示版本号,还显示Nginx服务器编译情况
-t 检查Nginx服务器配置文件是否有语法错误
-c 使输出内容更详细,这对查找配置文件中的语法错误很有帮助
-q与-t联用
"-s signal"用来向Nginx服务的主进程发送信号
"-p prefix"用来改变Nginx的安装路径,常用在平滑升级Nginx服务器的场合
"-c filename"用来指定启动Nginx服务使用的配置文件
"-g directives"用来补充Nginx配置文件,向Nginx服务指定启动时应用于全局的配置


启动Nginx:

# ./sbin/nginx

使用ps -ef | grep nginx命令查看Nginx服务的进程状态


Nginx停止:

发送信号

# ./sbin/nginx -g TERM | INT | QUIT

TERM和INT信号用于快速停止,QUIT用于平缓停止

或者

# kill TERM | INT | QUIT `/nginx/log/nginx.pid`


也可以使用kill命令向Nginx进程发送-9或者SIGKILL信号强制关闭Nginx服务(不建议)

# kill -9 | SIGKILL `/nginx/log/nginx.pid`


Nginx重启:

平滑重启

# ./sbin/nginx -g HUP [-c newConfile]

HUP信号用于发送平滑重启信号

newConfFile,可选项,用于指定新配置文件的路径

或者

使用新的配置文件代替了旧的配置文件后

# kill HUP `/nginx/log/nginx.pid`


天天晨练不仅为了健身,也为了体现生命的倔强

评论

^