参考文献: blog.csdn.net/liwenbo_csu…
概述:使用信号量控制nginx,主进程的ID默认在 /usr/local/nginx/logs/nginx.pid,这个可以在配置文件中进行修改。
一、主进程支持以下信号量的控制:
| 信号量 | 用处 |
|---|
| TERM, INT | 快速强制关闭worker进程主进程退出 |
| QUIT | 优美的关闭worker进程后主进程退出 |
| HUP | 修改配置信息,平滑关闭worker进程,启动新的worker进程 |
| USR1 | 重新打开日志文件 |
| USR2 | 升级可执行文件 |
| WINCH | 优美的关闭worker进程 |
二、子进程支持以下信号量的控制:
| 信号量 | 用处 |
|---|
| TERM, INT | 快速强制关闭worker进程 |
| QUIT | 优美的关闭worker进程 |
| USR1 | 重新打开日志文件 |
| WINCH | 调试信号量abnormal termination for debugging (requires debug_points to be enabled) |
三、使用nginx信号量例子:
quit-退出:
dev@dev-VirtualBox ~ $ cat /run/nginx.pid
6353
dev@dev-VirtualBox ~ $ ps -ef |grep nginx
root 6353 1 0 13:05 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
dev 6354 6353 0 13:05 ? 00:00:00 nginx: worker process
dev 8242 3811 0 14:29 pts/5 00:00:00 grep --color=auto nginx
dev@dev-VirtualBox ~ $ cat /run/nginx.pid
6353
dev@dev-VirtualBox ~ $ kill -QUIT 6353
bash: kill: (6353) - 不允许的操作
dev@dev-VirtualBox ~ $ sudo kill -QUIT 6353
[sudo] dev 的密码:
dev@dev-VirtualBox ~ $ ps -ef |grep nginx
dev 8290 3811 0 14:30 pts/5 00:00:00 grep --color=auto nginx
dev@dev-VirtualBox ~ $
hup-平滑重启:
dev@dev-VirtualBox ~ $ cat /run/nginx.pid
8352
dev@dev-VirtualBox ~ $ ps -ef |grep nginx
root 8352 1 0 14:31 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
dev 8353 8352 0 14:31 ? 00:00:00 nginx: worker process
dev 8366 3811 0 14:31 pts/5 00:00:00 grep --color=auto nginx
dev@dev-VirtualBox ~ $ sudo kill -HUP 8352
dev@dev-VirtualBox ~ $ ps -ef |grep nginx
root 8352 1 0 14:31 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
dev 8374 8352 0 14:32 ? 00:00:00 nginx: worker process
dev 8382 3811 0 14:32 pts/5 00:00:00 grep --color=auto nginx
dev@dev-VirtualBox ~ $