// 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);
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);
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();
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()