comparison src/os/unix/ngx_daemon.c @ 7162:8b84d60ef13d

Fixed "changing binary" when reaper is not init. On some systems, it's possible that reaper of orphaned processes is set to something other than "init" process. On such systems, the changing binary procedure did not work. The fix is to check if PPID has changed, instead of assuming it's always 1 for orphaned processes.
author Ruslan Ermilov <ru@nginx.com>
date Tue, 28 Nov 2017 12:00:24 +0300
parents b1ba43f905f8
children 3d455e37abf8
comparison
equal deleted inserted replaced
7161:325b3042edd6 7162:8b84d60ef13d
24 24
25 default: 25 default:
26 exit(0); 26 exit(0);
27 } 27 }
28 28
29 ngx_parent = ngx_pid;
29 ngx_pid = ngx_getpid(); 30 ngx_pid = ngx_getpid();
30 31
31 if (setsid() == -1) { 32 if (setsid() == -1) {
32 ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "setsid() failed"); 33 ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "setsid() failed");
33 return NGX_ERROR; 34 return NGX_ERROR;