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

Reply via email to