]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journal-gatewayd: handle SIGTERM
authorFrantisek Sumsal <fsumsal@redhat.com>
Sun, 18 Jun 2023 21:26:01 +0000 (23:26 +0200)
committerFrantisek Sumsal <fsumsal@redhat.com>
Mon, 19 Jun 2023 08:19:44 +0000 (10:19 +0200)
To allow gatewayd to exit cleanly.

src/journal-remote/journal-gatewayd.c

index f9bff4fb97106de83074cecd1416f027bcc5f287..980b98137e6fbbe604bd4a002865f453997c0c95 100644 (file)
@@ -31,6 +31,7 @@
 #include "parse-util.h"
 #include "pretty-print.h"
 #include "sigbus.h"
+#include "signal-util.h"
 #include "tmpfile-util.h"
 
 #define JOURNAL_WAIT_TIMEOUT (10*USEC_PER_SEC)
@@ -1004,6 +1005,10 @@ static int parse_argv(int argc, char *argv[]) {
 
 static int run(int argc, char *argv[]) {
         _cleanup_(MHD_stop_daemonp) struct MHD_Daemon *d = NULL;
+        static const struct sigaction sigterm = {
+                .sa_handler = nop_signal_handler,
+                .sa_flags = SA_RESTART,
+        };
         struct MHD_OptionItem opts[] = {
                 { MHD_OPTION_EXTERNAL_LOGGER,
                   (intptr_t) microhttpd_logger, NULL },
@@ -1040,6 +1045,7 @@ static int run(int argc, char *argv[]) {
                 return r;
 
         sigbus_install();
+        assert_se(sigaction(SIGTERM, &sigterm, NULL) >= 0);
 
         r = setup_gnutls_logger(NULL);
         if (r < 0)