]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: funnel SIGHUP handler through handle_mon_signal
authorSage Weil <sage@newdream.net>
Tue, 22 Jun 2021 20:23:51 +0000 (16:23 -0400)
committerSage Weil <sage@newdream.net>
Thu, 24 Jun 2021 16:46:53 +0000 (12:46 -0400)
This will let us take additional actions on SIGHUP later.

Signed-off-by: Sage Weil <sage@newdream.net>
src/ceph_mon.cc
src/mon/Monitor.cc

index f2d417ac4657286aa43ef56d4fdd31ea5e8bd95c..5efcc13575fb3b70aad7e999c52a2828cf048929 100644 (file)
@@ -618,7 +618,6 @@ int main(int argc, const char **argv)
 
   // set up signal handlers, now that we've daemonized/forked.
   init_async_signal_handler();
-  register_async_signal_handler(SIGHUP, sighup_handler);
 
   MonitorDBStore *store = new MonitorDBStore(g_conf()->mon_data);
 
@@ -913,6 +912,7 @@ int main(int argc, const char **argv)
 
   register_async_signal_handler_oneshot(SIGINT, handle_mon_signal);
   register_async_signal_handler_oneshot(SIGTERM, handle_mon_signal);
+  register_async_signal_handler(SIGHUP, handle_mon_signal);
 
   if (g_conf()->inject_early_sigterm)
     kill(getpid(), SIGTERM);
@@ -922,7 +922,7 @@ int main(int argc, const char **argv)
 
   store->close();
 
-  unregister_async_signal_handler(SIGHUP, sighup_handler);
+  unregister_async_signal_handler(SIGHUP, handle_mon_signal);
   unregister_async_signal_handler(SIGINT, handle_mon_signal);
   unregister_async_signal_handler(SIGTERM, handle_mon_signal);
   shutdown_async_signal_handler();
index 4124eb89f07a5e7beff226d86b78c64242667d4e..645ccdbed949e5cdce257329d0ead45a1fb8b8a2 100644 (file)
@@ -493,9 +493,13 @@ abort:
 
 void Monitor::handle_signal(int signum)
 {
-  ceph_assert(signum == SIGINT || signum == SIGTERM);
   derr << "*** Got Signal " << sig_str(signum) << " ***" << dendl;
-  shutdown();
+  if (signum == SIGHUP) {
+    sighup_handler(signum);
+  } else {
+    ceph_assert(signum == SIGINT || signum == SIGTERM);
+    shutdown();
+  }
 }
 
 CompatSet Monitor::get_initial_supported_features()