diff options
author | James Feist <james.feist@linux.intel.com> | 2019-11-26 09:07:15 -0800 |
---|---|---|
committer | Tom Joseph <tomjoseph@in.ibm.com> | 2019-11-27 10:25:39 +0000 |
commit | b0094a72d4c25a84b61327c752979f413e2b08f4 (patch) | |
tree | 4e375ea419dd515a29c2e605768fab71ccf3f31a | |
parent | 76ce9c784829b886d702572388ccf2cf4270e93e (diff) | |
download | phosphor-host-ipmid-b0094a72d4c25a84b61327c752979f413e2b08f4.tar.gz phosphor-host-ipmid-b0094a72d4c25a84b61327c752979f413e2b08f4.zip |
Provide proper exit code for signals
Currently ipmid only exits 0, allow it to exit based
on the signal captured.
Tested:
journalctl -u phosphor-pid-control -o json-pretty
{
"_SYSTEMD_SLICE" : "-.slice",
"_GID" : "0",
"_CAP_EFFECTIVE" : "3fffffffff",
"MESSAGE" : "phosphor-ipmi-host.service: Main process exited, code=killed, status=9/KILL",
"EXIT_STATUS" : "9",
"__CURSOR" : "s=cd10fcb9010e4cfdbcdad08709c2265d;i=399;b=2efcc2f735f74bc99588861556589a72;m=7c0ed53;t=592853b62b677;x=1ae3833ab435621e",
"__MONOTONIC_TIMESTAMP" : "130084179",
"MESSAGE_ID" : "98e322203f7a4ed290d09fe03c09fe15",
"_EXE" : "/lib/systemd/systemd",
"CODE_LINE" : "5797",
"UNIT" : "phosphor-ipmi-host.service",
"_SYSTEMD_CGROUP" : "/init.scope",
"_SYSTEMD_UNIT" : "init.scope",
"SYSLOG_IDENTIFIER" : "systemd",
"_COMM" : "systemd",
"_UID" : "0",
"PRIORITY" : "4",
"_HOSTNAME" : "intel-obmc",
"SYSLOG_FACILITY" : "3",
"CODE_FILE" : "src/core/unit.c",
"CODE_FUNC" : "unit_log_process_exit",
"_CMDLINE" : "/lib/systemd/systemd",
"__REALTIME_TIMESTAMP" : "1568475808183927",
"_SOURCE_REALTIME_TIMESTAMP" : "1568475808183827",
"COMMAND" : "ExecStart",
"INVOCATION_ID" : "67ff87a3ad4b4a4da3fe7e0ff083e2b8",
"_TRANSPORT" : "journal",
"_MACHINE_ID" : "f7182be05e2147feba2eaceaea0aded3",
"_BOOT_ID" : "2efcc2f735f74bc99588861556589a72",
"EXIT_CODE" : "killed",
"_PID" : "1"
}
Change-Id: I9f3233546b43a331076d21b73beabbf2aaca9d8b
Signed-off-by: James Feist <james.feist@linux.intel.com>
-rw-r--r-- | ipmid-new.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ipmid-new.cpp b/ipmid-new.cpp index 03b6b8a..3612884 100644 --- a/ipmid-new.cpp +++ b/ipmid-new.cpp @@ -861,12 +861,14 @@ int main(int argc, char* argv[]) ipmi::nameChangeHandler); ipmi::doListNames(*io, *sdbusp); + int exitCode = 0; // set up boost::asio signal handling std::function<SignalResponse(int)> stopAsioRunLoop = - [&io](int signalNumber) { + [&io, &exitCode](int signalNumber) { log<level::INFO>("Received signal; quitting", entry("SIGNAL=%d", signalNumber)); io->stop(); + exitCode = signalNumber; return SignalResponse::breakExecution; }; registerSignalHandler(ipmi::prioOpenBmcBase, SIGINT, stopAsioRunLoop); @@ -882,5 +884,5 @@ int main(int argc, char* argv[]) // unload the provider libraries providers.clear(); - return 0; + std::exit(exitCode); } |