// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
// vim: ts=8 sw=2 smarttab
+#include <signal.h>
+
#include <boost/range/adaptor/map.hpp>
#include "common/Formatter.h"
void Mirror::handle_signal(int signum)
{
- m_stopping = true;
- {
- Mutex::Locker l(m_lock);
+ dout(20) << signum << dendl;
+
+ Mutex::Locker l(m_lock);
+
+ switch (signum) {
+ case SIGHUP:
+ for (auto &it : m_pool_replayers) {
+ it.second->reopen_logs();
+ }
+ g_ceph_context->reopen_logs();
+ break;
+
+ case SIGINT:
+ case SIGTERM:
+ m_stopping = true;
m_cond.Signal();
+ break;
+
+ default:
+ ceph_abort_msgf("unexpected signal %d", signum);
}
}
if (f) {
f->close_section();
+ f->close_section();
+ f->flush(*ss);
}
}