5、控制nginx-阅读官方文档

官网:Controlling nginx

翻译部分:Controlling nginx

开始!


nginx can be controlled with signals.

nginx可以被信号控制。

例如:  ./nginx -s reload 中的s就是signal的缩写。


The process ID of the master process is written to the file /usr/local/nginx/logs/nginx.pid by default.

 主进程的进程ID默认被写到 /usr/local/nginx/logs/nginx.pid 文件中。


This name may be changed at configuration time, or in nginx.conf using the pid directive.

 这个名称可以在配置时更改,也可以在nginx.conf文件中用pid命令修改。

当启动、重启、关闭nginx会读写nginx.pid 文件。

如果nginx.conf没有指定pid命令,则读的是默认文件: /usr/local/nginx/logs/nginx.pid

如果nginx.conf文件中有指定pid命令,则启动、重启和关闭时读写的则是pid命令指定的文件。

先来看下nginx目录下默认有的文件:

5、控制nginx-阅读官方文档_第1张图片

我把pid的默认的logs改为log:

如果是pid指定的是相对路径,nginx默认从/usr/local/nginx目录下查找文件?

5、控制nginx-阅读官方文档_第2张图片

(1)重启:

可以看到读取的路径变成了/usr/local/nginx/log/nginx.pid

并且当前还没有log文件夹,所以报错了,重启失败。

(2)手动创建log目录:

5、控制nginx-阅读官方文档_第3张图片

并在log目录下添加空的nginx.pid文件:

(3)再次重启:

 因为文件里没有指定主进程id,报错了,重启失败。

(4)关闭nginx试试:

 跟reload是一样的报错。

(5)随便在log/nginx.pid文件中写入123,再关闭:

 提示没有pid为123的进程。

(6)查看当前的进程信息:

ps axw -o pid,ppid,user,%cpu,vsz,wchan,command | egrep '(nginx|PID)'

 得到主进程id为7617.

(7)修改log/nginx.pid为7617,再关闭nginx:

成功关闭nginx。 

(8)查看进程信息:

 没有看到主进程信息和worker进程信息了,成功!

(9)再查看log目录:

 发现刚刚新建的nginx.pid文件也没有了。

(10)关闭后再次启动nginx:

5、控制nginx-阅读官方文档_第4张图片

 log目录下生成了nginx.pid文件,nginx.pid内容为7733,7733就是nginx主进程的id。

可以看出启动nginx会生成nginx.pid文件,并写入nginx主进程id。

重启nginx会读取nginx.pid文件来获取当前nginx主进程的进程id来重启它。

关闭nginx会读取nginx.pid文件来获取当前nginx主进程的进程id来关闭它,并删掉nginx.pid文件。


The master process supports the following signals:

 主进程支持以下信号

TERM, INT fast shutdown
QUIT graceful shutdown
HUP changing configuration, keeping up with a changed time zone (only for FreeBSD and Linux), starting new worker processes with a new configuration, graceful shutdown of old worker processes
USR1 re-opening log files
USR2 upgrading an executable file
WINCH graceful shutdown of worker processes

Individual worker processes can be controlled with signals as well, though it is not required. The supported signals are:

 单个工作进程也可以通过信号进行控制,尽管这不是必需的。支持的信号包括:

TERM, INT fast shutdown
QUIT graceful shutdown
USR1 re-opening log files
WINCH abnormal termination for debugging (requires debug_points to be enabled)

你可能感兴趣的:(nginx,运维)