From 4d5df2ebd18efd1bdc8ea9d7e177c017c99e1981 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 20 Aug 2017 21:00:39 +0200 Subject: Treat SIGTERM just like SIGINT in our programs When somebody kills the process, it's best to handle the signal and to use the opportunity for some cleanup. We always did this in the BTS on SIGINT, but never on SIGTERM. Let's change it. Change-Id: I10009c08b7178988f646e2b6035197b9640ac9b5 --- src/common/main.c | 2 ++ src/osmo-bts-litecell15/misc/lc15bts_mgr.c | 2 ++ src/osmo-bts-sysmo/misc/sysmobts_mgr.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/common/main.c b/src/common/main.c index 6c13663f..c998c45b 100644 --- a/src/common/main.c +++ b/src/common/main.c @@ -184,6 +184,7 @@ static void signal_handler(int signal) switch (signal) { case SIGINT: + case SIGTERM: if (!quit) { oml_fail_rep(OSMO_EVT_CRIT_PROC_STOP, "BTS: SIGINT received -> shutdown"); @@ -324,6 +325,7 @@ int bts_main(int argc, char **argv) } signal(SIGINT, &signal_handler); + signal(SIGTERM, &signal_handler); //signal(SIGABRT, &signal_handler); signal(SIGUSR1, &signal_handler); signal(SIGUSR2, &signal_handler); diff --git a/src/osmo-bts-litecell15/misc/lc15bts_mgr.c b/src/osmo-bts-litecell15/misc/lc15bts_mgr.c index cec9a822..7886a5e2 100644 --- a/src/osmo-bts-litecell15/misc/lc15bts_mgr.c +++ b/src/osmo-bts-litecell15/misc/lc15bts_mgr.c @@ -226,6 +226,7 @@ static void signal_handler(int signal) switch (signal) { case SIGINT: + case SIGTERM: lc15bts_check_temp(no_rom_write); lc15bts_check_power(no_rom_write); lc15bts_check_vswr(no_rom_write); @@ -297,6 +298,7 @@ int main(int argc, char **argv) osmo_init_ignore_signals(); signal(SIGINT, &signal_handler); + signal(SIGTERM, &signal_handler); signal(SIGUSR1, &signal_handler); signal(SIGUSR2, &signal_handler); diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr.c b/src/osmo-bts-sysmo/misc/sysmobts_mgr.c index 6fadf0f6..17a6d89b 100644 --- a/src/osmo-bts-sysmo/misc/sysmobts_mgr.c +++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr.c @@ -198,6 +198,7 @@ static void signal_handler(int signal) switch (signal) { case SIGINT: + case SIGTERM: sysmobts_check_temp(no_eeprom_write); sysmobts_update_hours(no_eeprom_write); exit(0); @@ -266,6 +267,7 @@ int main(int argc, char **argv) osmo_init_ignore_signals(); signal(SIGINT, &signal_handler); + signal(SIGTERM, &signal_handler); signal(SIGUSR1, &signal_handler); signal(SIGUSR2, &signal_handler); -- cgit v1.2.3