Nginx - 命令行参数和信号

nginx 命令行参数

[root@VM_0_6_centos ~]# nginx -?
nginx version: nginx/1.18.0
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/nginx/)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file

nginx [-?hvVtTq]

# 打开帮助
nginx -h/-?
# 打印 nginx 的版本信息
nginx -v
# 打印 nginx 的版本和编译信息
nginx -V
# 测试配置文件是否有语法错误
nginx -t
# 测试配置文件,转储并退出
nginx -T
# 检测配置文件时屏蔽非错误信息,制输出错误信息
nginx -q

nginx [-s signal]

# 重新开始记录日志文件
nginx -s reopen
# 立刻停止服务
nginx -s stop
# 优雅的停止服务
nginx -s quit
# 重载加载配置文件并重启(平滑重启)
nginx -s reload

nginx [-c filename]

# 使用指定的配置文件,而不是默认的 conf 文件夹下的配置文件
nginx -c /usr/local/nginx/conf/nginx.conf

nginx [-p prefix]

# 指定运行目录
nginx -p /usr/local/nginx

nginx [-g directives]

# 指定配置命令,覆盖掉配置文件中的指令
nginx -g "pid /var/run/nginx.pid; worker_processes `sysctl -n hw,ncpu`;"

nginx 信号控制

常见信号控制

nginx 主进程可以处理以下的信号:

信号 说明
TERM, INT 快速关闭
QUIT 从容关闭,等待请求结束后关闭
HUP 重载配置,用新的配置开始新的工作进程,从容关闭旧的工作进程
USR1 重新打开日志文件,用于切割日志
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程,可配合 USR2 信号平滑升级可执行程序

使用信号控制

信号控制的具体语法为: kill -信号选项 Nginx 主进程号,例如:

kill -INT 主进程号 # 关闭 Nginx 进程
kill -HUP 主进程号 # 平滑地读取新配置文件,不必重启 Nginx
kill -USR1 主进程号
kill -USR2 主进程号
kill -WINCH 主进程号

参考资料

  • [1] 中国工信出版集团 《直播系统开发 基于 Nginx 与 Nginx-rtmp-module》