From 6b636c2d27908d2a49b6af7139c85a073ce4ddd0 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 17 May 2019 10:17:06 +0200 Subject: [PATCH] main-func: send main exit code to parent via sd_notify() on exit So far we silently convert negative return values from run() as EXIT_FAILURE, which is how UNIX expects it. In many cases it would be very useful for the caller to retrieve the actual error number we exit with. Let's generically return that via sd_notify()'s ERRNO= attribute. This means callers can set $NOTIFY_SOCKET and get the actual error number delivered at their doorstep just like that. --- src/shared/main-func.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/shared/main-func.h b/src/shared/main-func.h index 6c26cb9fb56..cf23ad450c5 100644 --- a/src/shared/main-func.h +++ b/src/shared/main-func.h @@ -3,6 +3,8 @@ #include +#include "sd-daemon.h" + #include "pager.h" #include "selinux-util.h" #include "spawn-ask-password-agent.h" @@ -16,6 +18,8 @@ save_argc_argv(argc, argv); \ intro; \ r = impl; \ + if (r < 0) \ + (void) sd_notifyf(0, "ERRNO=%i", -r); \ ask_password_agent_close(); \ polkit_agent_close(); \ pager_close(); \ -- 2.47.3