]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/rgw/librgw.cc
update sources to v12.2.3
[ceph.git] / ceph / src / rgw / librgw.cc
index 90559f2d351eb906158323aa61c2d777e4b737f4..023c3622e264ce92722361da49738de9a6de1ee0 100644 (file)
@@ -24,6 +24,7 @@
 #include "include/str_list.h"
 #include "include/stringify.h"
 #include "global/global_init.h"
+#include "global/signal_handler.h"
 #include "common/config.h"
 #include "common/errno.h"
 #include "common/Timer.h"
 
 bool global_stop = false;
 
+static void handle_sigterm(int signum)
+{
+  dout(20) << __func__ << " SIGUSR1 ignored" << dendl;
+}
+
 namespace rgw {
 
   using std::string;
@@ -539,6 +545,9 @@ namespace rgw {
     fec = new RGWFrontendConfig("rgwlib");
     fe = new RGWLibFrontend(env, fec);
 
+    init_async_signal_handler();
+    register_async_signal_handler(SIGUSR1, handle_sigterm);
+
     map<string, string> service_map_meta;
     service_map_meta["pid"] = stringify(getpid());
     service_map_meta["frontend_type#" + fe_count] = "rgw-nfs";
@@ -573,6 +582,9 @@ namespace rgw {
     delete fec;
     delete ldh;
 
+    unregister_async_signal_handler(SIGUSR1, handle_sigterm);
+    shutdown_async_signal_handler();
+
     rgw_log_usage_finalize();
 
     delete olog;