在Linux服务器中,我们可以通过信息来控制Nginx服务的启停。
Nginx服务在运行时,会保持一个主进程和一个或rker process工作进程,我们通过给Nginx服务的主进程发送信号就可以控制服务的启停,而通过给Nginx主进程发送信号首先要知道主进程的PID进程号。获取主进程的进程号,我在之前的文章《Nginx查看进程号》中写了,不知道的朋友可以去看看。
在Nginx服务中,主进程能够接收的信息如下表所示:
信号 | 作用 |
TERM、INT | 快速停止当前Nginx服务进程 |
QUIT | 平缓停止当前Nginx服务进程 |
HUP | 使用新的配置文件启动进程,之后平缓停止原有进程(平滑重启) |
USR1 | 重新打开日志文件,通常应用于日志切割 |
USR2 | 使用新版本的Nginx文件启动服务,之后平缓停止原有Nginx进程(平滑升级) |
WINCH | 平缓停止工作进程(work process),用于Nginx服务器的平滑升级 |
知道了Nginx服务能接受的信息后,我们就可以通过主进程号(PID)来对Nignx服务器进行启停控制了。如下所示:
//快速停止Nginx服务
kill term 13577
kill int 13577
//平缓停止Nginx服务
kill quit 13577