#endif
ngx_pid = ngx_getpid();
+ ngx_parent = ngx_getppid();
log = ngx_log_init(ngx_prefix);
if (log == NULL) {
exit(0);
}
+ ngx_parent = ngx_pid;
ngx_pid = ngx_getpid();
if (setsid() == -1) {
return NGX_INVALID_PID;
case 0:
+ ngx_parent = ngx_pid;
ngx_pid = ngx_getpid();
proc(cycle, data);
break;
break;
case ngx_signal_value(NGX_CHANGEBIN_SIGNAL):
- if (getppid() > 1 || ngx_new_binary > 0) {
+ if (ngx_getppid() == ngx_parent || ngx_new_binary > 0) {
/*
* Ignore the signal in the new binary if its parent is
- * not the init process, i.e. the old binary's process
- * is still running. Or ignore the signal in the old binary's
+ * not changed, i.e. the old binary's process is still
+ * running. Or ignore the signal in the old binary's
* process if the new binary's process is already running.
*/
#define ngx_getpid getpid
+#define ngx_getppid getppid
#ifndef ngx_log_pid
#define ngx_log_pid ngx_pid
extern char **ngx_os_argv;
extern ngx_pid_t ngx_pid;
+extern ngx_pid_t ngx_parent;
extern ngx_socket_t ngx_channel;
extern ngx_int_t ngx_process_slot;
extern ngx_int_t ngx_last_process;
ngx_uint_t ngx_process;
ngx_uint_t ngx_worker;
ngx_pid_t ngx_pid;
+ngx_pid_t ngx_parent;
sig_atomic_t ngx_reap;
sig_atomic_t ngx_sigio;
#define ngx_getpid GetCurrentProcessId
+#define ngx_getppid() 0
#define ngx_log_pid ngx_pid
extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
extern ngx_pid_t ngx_pid;
+extern ngx_pid_t ngx_parent;
#endif /* _NGX_PROCESS_H_INCLUDED_ */
ngx_uint_t ngx_process;
ngx_uint_t ngx_worker;
ngx_pid_t ngx_pid;
+ngx_pid_t ngx_parent;
ngx_uint_t ngx_inherited;
ngx_pid_t ngx_new_binary;