It seems that it’s working as designed. I thought the old master would exit automatically. But it sticks around in case you want to fail back.
Thanks and sorry for the noise. > On Apr 4, 2017, at 7:41 AM, Marc Soda <[email protected]> wrote: > > I sent WINCH to the old master. In this case 32277. > > After sending WINCH, I can send QUIT to the old master and it exits. > Everything looks fine at that point. But it seems a little odd to have to do > this. > >> On Apr 4, 2017, at 4:43 AM, Lucas Rolff <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hello Marc, >> >> For which PID do you send the WINCH signal? >> >> >> From: nginx <[email protected] <mailto:[email protected]>> on >> behalf of Marc Soda <[email protected] <mailto:[email protected]>> >> Reply-To: "[email protected] <mailto:[email protected]>" <[email protected] >> <mailto:[email protected]>> >> Date: Tuesday, 4 April 2017 at 04.04 >> To: "[email protected] <mailto:[email protected]>" <[email protected] >> <mailto:[email protected]>> >> Subject: Binary upgrade with systemd >> >> Hello, >> >> I’m using nginx 1.10.3 custom built on Ubuntu 16.04. I’m also using the >> recommended systemd service file: >> >> [Unit] >> Description=The NGINX HTTP and reverse proxy server >> After=syslog.target network.target remote-fs.target nss-lookup.target >> >> [Service] >> Type=forking >> PIDFile=/run/nginx.pid >> ExecStartPre=/usr/sbin/nginx -t >> ExecStart=/usr/sbin/nginx >> ExecReload=/bin/kill -s HUP $MAINPID >> ExecStop=/bin/kill -s QUIT $MAINPID >> PrivateTmp=true >> >> [Install] >> WantedBy=multi-user.target >> >> I’m try to do a no downtime upgrade with the USR2 and WINCH signals. Here >> is my process list before: >> >> root 32277 0.0 0.4 1056672 71148 ? Ss 21:51 0:00 nginx: >> master process /usr/local/nginx/sbin/nginx >> www 32278 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32279 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32280 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32281 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32282 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32283 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32288 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32289 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32290 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32291 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32292 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32293 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32294 0.0 0.4 1056672 72212 ? S 21:51 0:00 \_ nginx: >> cache manager process >> >> and here it is after sending USR2: >> >> root 32277 0.0 0.4 1056672 71868 ? Ss 21:51 0:00 nginx: >> master process /usr/local/nginx/sbin/nginx >> www 32278 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32279 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32280 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32281 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32282 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32283 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32288 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32289 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32290 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32291 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32292 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32293 0.0 0.4 1057924 73152 ? S< 21:51 0:00 \_ nginx: >> worker process >> www 32294 0.0 0.4 1056672 72212 ? S 21:51 0:00 \_ nginx: >> cache manager process >> root 32461 5.5 0.5 1056676 82316 ? S 22:01 0:00 \_ nginx: >> master process /usr/local/nginx/sbin/nginx >> www 32465 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32466 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32467 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32468 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32469 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32470 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32471 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32472 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32473 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32474 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32475 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32476 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32477 0.0 0.4 1056676 72176 ? S 22:01 0:00 \_ >> nginx: cache manager process >> www 32478 0.0 0.4 1056676 72176 ? S 22:01 0:00 \_ >> nginx: cache loader process >> >> Notice how the new master is a child of the old master. If I send a WINCH I >> get: >> >> root 32277 0.0 0.4 1056672 71868 ? Ss 21:51 0:00 nginx: >> master process /usr/local/nginx/sbin/nginx >> root 32461 0.2 0.5 1056676 82316 ? S 22:01 0:00 \_ nginx: >> master process /usr/local/nginx/sbin/nginx >> www 32465 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32466 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32467 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32468 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32469 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32470 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32471 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32472 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32473 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32474 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32475 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32476 0.0 0.4 1057928 73052 ? S< 22:01 0:00 \_ >> nginx: worker process >> www 32477 0.0 0.4 1056676 72176 ? S 22:01 0:00 \_ >> nginx: cache manager process >> www 32478 0.0 0.4 1056676 72176 ? S 22:01 0:00 \_ >> nginx: cache loader process >> >> which is not what I’m looking for. Is this a limitation when running with >> systemd? >> >> Thanks, >> Marc >> _______________________________________________ >> nginx mailing list >> [email protected] <mailto:[email protected]> >> http://mailman.nginx.org/mailman/listinfo/nginx > > _______________________________________________ > nginx mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx
_______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
