aboutsummaryrefslogtreecommitdiff
path: root/src/rc
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2016-05-23 11:06:40 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2016-05-23 11:10:51 -0500
commit94077d264e14783e6ca5603d64e9d579fb206c20 (patch)
tree83d42d436900665518a62454c930e05034edcde9 /src/rc
parent3351c8b4c3027f09003f8ba33e43f46762f5c453 (diff)
supervise-daemon: log the exit code or signal when a child process dies
Diffstat (limited to 'src/rc')
-rw-r--r--src/rc/supervise-daemon.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rc/supervise-daemon.c b/src/rc/supervise-daemon.c
index 2d8287fd..c1ef169e 100644
--- a/src/rc/supervise-daemon.c
+++ b/src/rc/supervise-daemon.c
@@ -702,8 +702,12 @@ int main(int argc, char **argv)
syslog(LOG_INFO, "stopping %s, pid %d", exec, child_pid);
kill(child_pid, SIGTERM);
} else {
- syslog(LOG_INFO, "%s, pid %d, terminated unexpectedly",
- exec, child_pid);
+ if (WIFEXITED(i))
+ syslog(LOG_INFO, "%s, pid %d, exited with return code %d",
+ exec, child_pid, WEXITSTATUS(i));
+ else if (WIFSIGNALED(i))
+ syslog(LOG_INFO, "%s, pid %d, terminated by signal %d",
+ exec, child_pid, WTERMSIG(i));
child_pid = fork();
if (child_pid == -1)
eerrorx("%s: fork: %s", applet, strerror(errno));