version 1.159, 2023/01/06 07:09:27 |
version 1.160, 2023/07/10 09:35:46 |
|
|
{ |
{ |
struct sigaction sigact; |
struct sigaction sigact; |
int status; |
int status; |
|
pid_t pid; |
|
|
log_debug("%s: %s", __func__, strsignal(sig)); |
log_debug("%s: %s", __func__, strsignal(sig)); |
if (sig == SIGCHLD) |
if (sig == SIGCHLD) { |
waitpid(WAIT_ANY, &status, WNOHANG); |
for (;;) { |
else if (!client_attached) { |
pid = waitpid(WAIT_ANY, &status, WNOHANG); |
|
if (pid == 0) |
|
break; |
|
if (pid == -1) { |
|
if (errno == ECHILD) |
|
break; |
|
log_debug("waitpid failed: %s", |
|
strerror(errno)); |
|
} |
|
} |
|
} else if (!client_attached) { |
if (sig == SIGTERM || sig == SIGHUP) |
if (sig == SIGTERM || sig == SIGHUP) |
proc_exit(client_proc); |
proc_exit(client_proc); |
} else { |
} else { |