我正在孤立地提供一些演示,例如:
/demo1/-- nginx.conf
|- index.html
|- ...
#run
/demo1$ sudo nginx -c `pwd`/nginx.conf
和
/demo2/-- nginx.conf
|- index.html
|- ...
#run
/demo2$ sudo nginx -c `pwd`/nginx.conf
现在我有以下nginx进程:
$ ps aux | grep nginx
root 3434 0.0 0.0 85904 1340 ? Ss 12:02 0:00 nginx: master process nginx -c /demo1/nginx.conf
nobody 3435 0.0 0.0 86316 2272 ? S 12:02 0:00 nginx: worker process
root 5096 0.0 0.0 85904 1344 ? Ss 11:21 0:00 nginx: master process nginx -c /demo2/nginx.conf
nobody 5097 0.0 0.0 86316 2272 ? S 11:21 0:00 nginx: worker process
我相信(告诉我,如果我错了)如果我以这种方式重新加载配置:
$ sudo nginx -s reload
它只会将消息传递给最后一个正在旋转的主进程。
如何在特定主进程上重新加载配置?
阅读manpage后,我认为它与-g
选项有关,但我不知道如何处理。我应该指定一个静态PID吗?
以下是我的nginx.conf
供参考
user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
server {
listen 8000;
location / {
root /demoX;
index index.html index.htm;
}
}
}
答案 0 :(得分:1)
您可以将信号用于某些PID:
kill -QUIT 3434
重新加载选项是对QUIT信号的引用,它重新加载配置并生成新工作者。