From 7e6bc5ac63f996f968e9bec1647f8cbabd40098f Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Thu, 16 Sep 2010 21:10:01 -0400 Subject: [PATCH] utils: Improve debug spew in ply_create_daemon Right now if plymouthd dies while daemonizing, we show a horrible error message on the console: could not read byte from child: Success This commit mops that up, so we give a little clue why plymouthd's child process died in its infancy. --- src/libply/ply-utils.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/libply/ply-utils.c b/src/libply/ply-utils.c index ac5a5c14..a65c469a 100644 --- a/src/libply/ply-utils.c +++ b/src/libply/ply-utils.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -846,7 +847,20 @@ ply_create_daemon (const char *pid_file) if (!ply_read (receiver_fd, &byte, sizeof (uint8_t))) { - ply_error ("could not read byte from child: %m"); + int status; + + if (waitpid (pid, &status, WNOHANG) <= 0) + { + ply_error ("failed to read status from child immediately after starting to daemonize"); + } + else if (WIFEXITED (status)) + { + ply_error ("unexpectedly exited with status %d immediately after starting to daemonize", (int) WEXITSTATUS (status)); + } + else if (WIFSIGNALED (status)) + { + ply_error ("unexpectedly died from signal %s immediately after starting to daemonize", strsignal (WTERMSIG (status))); + } _exit (1); } -- 2.47.3