summaryrefslogtreecommitdiffstats
path: root/init/sigchld_handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'init/sigchld_handler.cpp')
-rw-r--r--init/sigchld_handler.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/init/sigchld_handler.cpp b/init/sigchld_handler.cpp
index badacaf1c..072a0fb0b 100644
--- a/init/sigchld_handler.cpp
+++ b/init/sigchld_handler.cpp
@@ -84,15 +84,16 @@ static bool ReapOneProcess() {
}
}
- if (siginfo.si_code == CLD_EXITED) {
- LOG(INFO) << name << " exited with status " << siginfo.si_status << wait_string;
- } else {
- LOG(INFO) << name << " received signal " << siginfo.si_status << wait_string;
+ auto status = siginfo.si_status;
+ if (WIFEXITED(status)) {
+ LOG(INFO) << name << " exited with status " << WEXITSTATUS(status) << wait_string;
+ } else if (WIFSIGNALED(status)) {
+ LOG(INFO) << name << " killed by signal " << WTERMSIG(status) << wait_string;
}
if (!service) return true;
- service->Reap(siginfo);
+ service->Reap();
if (service->flags() & SVC_TEMPORARY) {
ServiceList::GetInstance().RemoveService(*service);