X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdaemon.c;h=c6489cd5bb2be128ed0f3a0fb5b24759d75efbf4;hb=eb5f3e933b0922d369ad839b2afa1cd7ab764b6e;hp=bbcfe6afc7ebb5288178394a616eb31cf3f775cb;hpb=e4bd5e2a6c4223fd9cfb2dd1ad82a4eeb1b1fbe6;p=openvswitch diff --git a/lib/daemon.c b/lib/daemon.c index bbcfe6af..c6489cd5 100644 --- a/lib/daemon.c +++ b/lib/daemon.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include "command-line.h" #include "fatal-signal.h" @@ -34,7 +35,7 @@ #include "util.h" #include "vlog.h" -VLOG_DEFINE_THIS_MODULE(daemon) +VLOG_DEFINE_THIS_MODULE(daemon); /* --detach: Should we run in the background? */ static bool detach; @@ -366,13 +367,13 @@ monitor_daemon(pid_t daemon_pid) ovs_fatal(errno, "waitpid failed"); } else if (retval == daemon_pid) { char *s = process_status_msg(status); - free(status_msg); - status_msg = xasprintf("%d crashes: pid %lu died, %s", - ++crashes, - (unsigned long int) daemon_pid, s); - free(s); - if (should_restart(status)) { + free(status_msg); + status_msg = xasprintf("%d crashes: pid %lu died, %s", + ++crashes, + (unsigned long int) daemon_pid, s); + free(s); + if (WCOREDUMP(status)) { /* Disable further core dumps to save disk space. */ struct rlimit r; @@ -406,7 +407,9 @@ monitor_daemon(pid_t daemon_pid) break; } } else { - VLOG_INFO("%s, exiting", status_msg); + VLOG_INFO("pid %lu died, %s, exiting", + (unsigned long int) daemon_pid, s); + free(s); exit(0); } }