]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
importd: hook up memory pressure, SIGRTMIN-18 (and in fact SIGINT + SIGTERM)
authorLennart Poettering <lennart@poettering.net>
Thu, 23 Feb 2023 09:25:27 +0000 (10:25 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 1 Mar 2023 08:43:23 +0000 (09:43 +0100)
src/import/importd.c

index 5f7b9c3163d3a053deeabf8c929596d2c84a7cb6..ed757019cf989c478af933995b2b09b73d28ee4e 100644 (file)
@@ -10,6 +10,7 @@
 #include "bus-get-properties.h"
 #include "bus-log-control-api.h"
 #include "bus-polkit.h"
+#include "common-signal.h"
 #include "constants.h"
 #include "env-util.h"
 #include "fd-util.h"
@@ -636,7 +637,23 @@ static int manager_new(Manager **ret) {
         if (r < 0)
                 return r;
 
-        sd_event_set_watchdog(m->event, true);
+        (void) sd_event_set_watchdog(m->event, true);
+
+        r = sd_event_add_signal(m->event, NULL, SIGINT, NULL, NULL);
+        if (r < 0)
+                return r;
+
+        r = sd_event_add_signal(m->event, NULL, SIGTERM, NULL, NULL);
+        if (r < 0)
+                return r;
+
+        r = sd_event_add_signal(m->event, NULL, SIGRTMIN+18, sigrtmin18_handler, NULL);
+        if (r < 0)
+                return r;
+
+        r = sd_event_add_memory_pressure(m->event, NULL, NULL, NULL);
+        if (r < 0)
+                log_debug_errno(r, "Failed allocate memory pressure event source, ignoring: %m");
 
         r = sd_bus_default_system(&m->bus);
         if (r < 0)
@@ -1389,7 +1406,7 @@ static int run(int argc, char *argv[]) {
 
         umask(0022);
 
-        assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, -1) >= 0);
+        assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, SIGTERM, SIGINT, SIGRTMIN+18, -1) >= 0);
 
         r = manager_new(&m);
         if (r < 0)