Mercurial > hg > nginx-quic
changeset 7965:9c038f5e0464
Fixed removing of listening UNIX sockets when "changing binary".
When changing binary, sending a SIGTERM to the new binary's master process
should not remove inherited UNIX sockets unless the old binary's master
process has exited.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Mon, 01 Jun 2020 20:19:27 +0300 |
parents | 8cadaf7e7231 |
children | 7cbf6389194b |
files | src/core/nginx.c src/core/ngx_connection.c src/core/ngx_cycle.c |
diffstat | 3 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/nginx.c +++ b/src/core/nginx.c @@ -492,6 +492,7 @@ ngx_add_inherited_sockets(ngx_cycle_t *c ngx_memzero(ls, sizeof(ngx_listening_t)); ls->fd = (ngx_socket_t) s; + ls->inherited = 1; } }
--- a/src/core/ngx_connection.c +++ b/src/core/ngx_connection.c @@ -1070,7 +1070,8 @@ ngx_close_listening_sockets(ngx_cycle_t if (ls[i].sockaddr->sa_family == AF_UNIX && ngx_process <= NGX_PROCESS_MASTER - && ngx_new_binary == 0) + && ngx_new_binary == 0 + && (!ls[i].inherited || ngx_getppid() != ngx_parent)) { u_char *name = ls[i].addr_text.data + sizeof("unix:") - 1;