目录
- 
- 1、理解Nginx后台进程
 - 2、停止Nginx(方式一:使用信号源)
 - 
- [2.1 获取master进程号](#2.1 获取master进程号)
 - [2.1 设置信号源](#2.1 设置信号源)
 
 - 3、停止Nginx(方式二:使用命令行)
 
 
1、理解Nginx后台进程
Nginx后台进程包含master和worker两类进程。
master进程:主要用来管理worker进程,包含接收外界的信息,并将接收到的信号发送给各个worker进程,监控worker进程的状态,当worker进程出现异常后,会自动重新启动新的worker进程。
worker进程:主要用来处理用户请求,各个worker进程之间是平等并且独立的,处理请求的机会也是一样的。

2、停止Nginx(方式一:使用信号源)
我们现在如果想要操作Nginx只需要获取master进程号,并给master进程发送信号即可。
2.1 获取master进程号
- 通过
ps -ef | grep nginx 

- 通过Nginx的配置文件
more nginx.pid 

2.1 设置信号源
| 信号 | 作用 | 案例 | 
|---|---|---|
| TERM/INT | 立刻停止服务 | kill -TERM PID | 
| QUIT | 等进程执行完成之后关闭服务 | kill -QUIT PID | 
| HUP | 重新读取配置文件,并启动Nginx | kill -HUP PID | 
| USR1 | 重新打开日志文件,主要用来分割日志 | kill -USR1 PID | 
| USR2 | 升级Nginx | kill -USR2 PID | 
| WINCH | 所哟子进程不在接收处理新连接,相当于QUIT | kill -WINCH PID | 
如果使用kill -USR2 PID升级Nginx之后再次查看进行会发现存在两个master进程

我们可以查看Nginx配置文件来关闭老版本的Nginx

3、停止Nginx(方式二:使用命令行)

| 命令 | 含义 | 
|---|---|
| ./nginx -h | 查看Nginx命令帮助文档 | 
| ./nginx -v | 查看Nginx版本号 | 
| ./nginx -V | 查看Nginx版本号及详细信息 | 
| ./nginx -t | 测试Nginx配置文件是否正确 | 
| ./nginx -t | 测试Nginx配置文件是否正确,并查看配置文件的内容 | 
| ./nginx -tq | 在测试期间,只输出错误信息 | 
./nginx -s | 
./nginx -s stop 快速关闭Nginx ./nginx -s quit 优雅的关闭Nginx ./nginx -s reopen 重新打开日志文件,类似于USR1 ./nginx -s reload 重新加载配置文件 | 
| ./nginx -p | 重新设置Nginx的安装目录(别动) | 
| ./nginx -tc 配置文件路径 | 指定Nginx配置文件的位置,默认=/usr/local/nginx/cong/nginx.conf | 
 ./nginx -c 配置文件路径 | 
指定配置文件启动Nginx | 
| ./nginx -g | 修改Nginx配置(不用) |