Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
// set up signal handlers, now that we've daemonized/forked.
init_async_signal_handler();
register_async_signal_handler(SIGHUP, sighup_handler);
- register_async_signal_handler(SIGINT, handle_mon_signal);
- register_async_signal_handler(SIGTERM, handle_mon_signal);
+ register_async_signal_handler_oneshot(SIGINT, handle_mon_signal);
+ register_async_signal_handler_oneshot(SIGTERM, handle_mon_signal);
uint64_t supported =
CEPH_FEATURE_UID |
void Monitor::handle_signal(int signum)
{
assert(signum == SIGINT || signum == SIGTERM);
- derr << "*** got signal " << sys_siglist[signum] << " ***" << dendl;
-
- // FIXME
- exit(1);
+ derr << "*** Got Signal " << sys_siglist[signum] << " ***" << dendl;
+ lock.Lock();
+ shutdown();
+ lock.Unlock();
}
void Monitor::init()