From 7060a6a710084a1234912d82258692832c593805 Mon Sep 17 00:00:00 2001 From: huanwen ren Date: Mon, 5 Feb 2018 15:23:42 +0800 Subject: [PATCH] common: Sign in early SIGHUP signal Contains the following process: ceph-mon ceph-mgr ceph-mds ceph-fuse radosgw. Signed-off-by: huanwen ren --- src/ceph_fuse.cc | 6 +++--- src/ceph_mds.cc | 9 +++++---- src/ceph_mon.cc | 7 ++++--- src/mgr/MgrStandby.cc | 5 +++-- src/rgw/rgw_main.cc | 5 +++-- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/ceph_fuse.cc b/src/ceph_fuse.cc index 76fedf50afeb6..05a4f3f9da921 100644 --- a/src/ceph_fuse.cc +++ b/src/ceph_fuse.cc @@ -145,6 +145,9 @@ int main(int argc, const char **argv, const char *envp[]) { { common_init_finish(g_ceph_context); + + init_async_signal_handler(); + register_async_signal_handler(SIGHUP, sighup_handler); //cout << "child, mounting" << std::endl; class RemountTest : public Thread { @@ -240,9 +243,6 @@ int main(int argc, const char **argv, const char *envp[]) { goto out_messenger_start_failed; } - init_async_signal_handler(); - register_async_signal_handler(SIGHUP, sighup_handler); - // start client r = client->init(); if (r < 0) { diff --git a/src/ceph_mds.cc b/src/ceph_mds.cc index 536edca41fc05..5399b9460fe49 100644 --- a/src/ceph_mds.cc +++ b/src/ceph_mds.cc @@ -174,7 +174,11 @@ int main(int argc, const char **argv) global_init_daemonize(g_ceph_context); common_init_finish(g_ceph_context); - + + // set up signal handlers, now that we've daemonized/forked. + init_async_signal_handler(); + register_async_signal_handler(SIGHUP, sighup_handler); + // get monmap MonClient mc(g_ceph_context); if (mc.build_initial_monmap() < 0) @@ -196,9 +200,6 @@ int main(int argc, const char **argv) goto shutdown; } - // 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_oneshot(SIGINT, handle_mds_signal); register_async_signal_handler_oneshot(SIGTERM, handle_mds_signal); diff --git a/src/ceph_mon.cc b/src/ceph_mon.cc index ea022d0c42fee..63d7e84124433 100644 --- a/src/ceph_mon.cc +++ b/src/ceph_mon.cc @@ -512,6 +512,10 @@ int main(int argc, const char **argv) #endif } + // 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); { ostringstream oss; @@ -789,9 +793,6 @@ int main(int argc, const char **argv) mon->init(); - // 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_oneshot(SIGINT, handle_mon_signal); register_async_signal_handler_oneshot(SIGTERM, handle_mon_signal); diff --git a/src/mgr/MgrStandby.cc b/src/mgr/MgrStandby.cc index cd8ec2ca36c01..7aebbae5ef007 100644 --- a/src/mgr/MgrStandby.cc +++ b/src/mgr/MgrStandby.cc @@ -94,6 +94,9 @@ void MgrStandby::handle_conf_change( int MgrStandby::init() { + init_async_signal_handler(); + register_async_signal_handler(SIGHUP, sighup_handler); + Mutex::Locker l(lock); // Initialize Messenger @@ -422,8 +425,6 @@ int MgrStandby::main(vector args) { // Enable signal handlers signal_mgr = this; - init_async_signal_handler(); - register_async_signal_handler(SIGHUP, sighup_handler); register_async_signal_handler_oneshot(SIGINT, handle_mgr_signal); register_async_signal_handler_oneshot(SIGTERM, handle_mgr_signal); diff --git a/src/rgw/rgw_main.cc b/src/rgw/rgw_main.cc index aaa57ae0ef314..659b05f0764d4 100644 --- a/src/rgw/rgw_main.cc +++ b/src/rgw/rgw_main.cc @@ -287,6 +287,9 @@ int main(int argc, const char **argv) common_init_finish(g_ceph_context); + init_async_signal_handler(); + register_async_signal_handler(SIGHUP, sighup_handler); + int r = rgw_tools_init(g_ceph_context); if (r < 0) { derr << "ERROR: unable to initialize rgw tools" << dendl; @@ -427,8 +430,6 @@ int main(int argc, const char **argv) exit(1); } - init_async_signal_handler(); - register_async_signal_handler(SIGHUP, sighup_handler); register_async_signal_handler(SIGTERM, handle_sigterm); register_async_signal_handler(SIGINT, handle_sigterm); register_async_signal_handler(SIGUSR1, handle_sigterm); -- 2.39.5