diff options
author | Vernon Mauery <vernon.mauery@linux.intel.com> | 2019-03-13 13:11:25 -0700 |
---|---|---|
committer | Vernon Mauery <vernon.mauery@linux.intel.com> | 2019-03-20 13:26:06 -0700 |
commit | 1b7f6f2d01b955cecb79eea8cc21f6fe387ce1f1 (patch) | |
tree | b1f7d52984c4466c3637709d4a59a70f0fcce03a /transporthandler.cpp | |
parent | 3719c2fc50d33dbe407eb5351d94252406ccec9e (diff) | |
download | phosphor-host-ipmid-1b7f6f2d01b955cecb79eea8cc21f6fe387ce1f1.tar.gz phosphor-host-ipmid-1b7f6f2d01b955cecb79eea8cc21f6fe387ce1f1.zip |
make ipmid respond to SIGTERM and SIGINT for clean shutdown
On some systems ipmid was not responding to SIGTERM so systemd
could not shut it down in a clean manner, resorting to SIGKILL
after a long timeout. This adds code to respond to SIGTERM and
SIGINT and safely unwind all the provider libraries on exit.
Tested-by: running ipmid; in another shell, and running
'killall -15 ipmid' or 'killall -2 ipmid' to send
SIGTERM or SIGINT and watch that ipmid shuts down
in a controlled and timely manner.
Change-Id: I690846796523bebea1a08845c0d17e1df2a94fee
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
Diffstat (limited to 'transporthandler.cpp')
-rw-r--r-- | transporthandler.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/transporthandler.cpp b/transporthandler.cpp index 0b5a00c..24fea47 100644 --- a/transporthandler.cpp +++ b/transporthandler.cpp @@ -37,7 +37,8 @@ namespace filesystem = std::experimental::filesystem; #error filesystem not available #endif -extern std::unique_ptr<phosphor::Timer> networkTimer; +// timer for network changes +std::unique_ptr<phosphor::Timer> networkTimer = nullptr; const int SIZE_MAC = 18; // xx:xx:xx:xx:xx:xx constexpr auto ipv4Protocol = "xyz.openbmc_project.Network.IP.Protocol.IPv4"; |