Master process on reload
Maxim Dounin
mdounin at mdounin.ru
Wed Jun 29 17:38:44 UTC 2016
Hello!
On Wed, Jun 29, 2016 at 07:04:48PM +0200, B.R. wrote:
> Kind of basic question about nginx behavior here.
>
> On the docs page http://nginx.org/en/docs/control.html, it is said :
>
> > 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
>
> This is exact since the HUP signal is used to reload configuration and
> spawn new workers with it.
>
> However, a little bit further on the same page, in the on-the-fly upgrade
> section, you got:
>
> > Send the HUP signal to the old master process. The old master process will
> > start new worker processes without re-reading the configuration. After
> > that, all new processes can be shut down gracefully, by sending the QUIT
> > signal to the new master process.
>
> Is this behavior due to the USR2 signal previously sent, the old master
> knowing it is the old one (and thus knowing it should avoid loading an
> improper configuration suitable for another version)?
Yes. The old master knows it previously started a new master,
and on the HUP signal it just starts new workers (if the new
master is still running). If/when the old master exits, the old
master is notified about this, and starts to work normally.
Additional details can be found in
src/os/unix/ngx_process_cycle.c:
http://hg.nginx.org/nginx/file/tip/src/os/unix/ngx_process_cycle.c#l220
--
Maxim Dounin
http://nginx.org/
More information about the nginx
mailing list