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>
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 @@
         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 @@
     // unload the provider libraries
     providers.clear();
 
-    return 0;
+    std::exit(exitCode);
 }