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

5、Nginx的启动与停止文字说明版

一、Nginx的信号控制

Nginx服务在运行时,会保持一个主进程和一个或多个worker process工作进程

通过给Nginx服务的主进程发送信号就可以控制服务的启停了


如何给主进程发送信号呢?首先要知道主进程的进程号PID

二、获取PID的两种途径

1、Nginx启动后,默认在Nginx服务器安装目录下logs 会产生文件名nginx.pid 

image.png

2、通过ps 命令查看进程

image.png

系统中包含一个Nginx服务的主进程master process和1个工作进程worker process,其中主进程对应的PID为第二列中的15847,这和nginx.pid文件中的一致。


三、Nginx服务可接收的信号

image.png

向Nginx服务主进程发送信号也有两种方法:


1、使用nginx二进制文件

kill SIGNAL PID

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

image.png


2、是使用kill命令发送信号

kill SIGNAL `filepath`
filepath为nginx.pid的路径

四、Nginx服务启动

Linux平台下,启动Nginx服务器直接运行安装目录下sbin目录中的二进制文件即可

首先定位到Nginx安装目录下,执行

# ./sbin/nginx -h

image.png

nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
-?,-h  : this help  显示该帮助信息
-v :show version and exit  打印版本号并退出
-V:打印版本号和配置并退出
-t:测试配置正确性并退出
-q:测试配置时只显示错误
-s:向主进程发送信号
-p:指定nginx服务器路径前缀
-c:指定nginx配置文件路径
-g :指定nginx 附加配置文件路径


五、Nginx服务的停止

停止Nginx有2种方法:

1、快速停止:指立即停止当前Nginx服务正在处理的所有网络请求,马上丢弃连接,停止工作

2、平缓停止:指允许Nginx服务将当前正在处理的网络请求处理完成,但不再接收新的请求,之后关闭连接,停止工作


停止Nginx服务的操作比较多,可以发送信号:

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

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

image.png

或者:

# kill TERM | INT | QUIT `/Nginx/logs/nginx.pid`


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

# kill -9 | SIGKILL `/Nginx/logs/nginx.pid`


六、Nginx服务的重启

更改Nginx服务器的配置和加入新模块后,如果希望当前的Nginx服务应用新的配置或使新模块生效,就需要重启Nginx服务

或者,我们可以先关闭Nginx服务,然后使用新的Nginx配置文件重启服务


七、Nginx服务的平滑重启

平滑重启是这样一个过程,Nginx服务进程接收到信号后,首先读取新的Nginx配置文件,如果配置语法正确,则启动新的Nginx服务,然后平缓关闭旧的服务进程;

如果新的Nginx配置有问题,将显示错误,仍然使用旧的Nginx进程提供服务


以下命令实现Nginx服务的平滑重启:

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

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

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

或者

使用新的配置文件代替了旧的配置文件后,也可以实现平滑重启

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

nginx

人生建议:不要因为嘴硬而失去重要的东西,清醒,知趣,明得失,知进退。

评论

^