From c1344e89ffe488a4fb5d1898d68fb14a88846937 Mon Sep 17 00:00:00 2001 From: Joachim Nilsson Date: Thu, 28 Dec 2017 20:48:44 +0100 Subject: [PATCH] api_exit(): Only shutdown() of API socket at runtime Not needed at shutdown/reboot. Also, it may segfault at that stage. Signed-off-by: Joachim Nilsson --- src/api.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/api.c b/src/api.c index f08c1d13..4673ee89 100644 --- a/src/api.c +++ b/src/api.c @@ -342,6 +342,7 @@ static void api_cb(uev_t *w, void *arg, int events) kill(wdogpid, SIGTERM); do_sleep(1); } + _d("wdog was %d, now %d is in charge", wdogpid, rq.runlevel); wdogpid = rq.runlevel; break; @@ -428,6 +429,9 @@ error: int api_exit(void) { + if (runlevel == 0 || runlevel == 6) + return close(api_watcher.fd); + return shutdown(api_watcher.fd, SHUT_RDWR) || close(api_watcher.fd); }