]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
userdbd: hook up memory pressure and sigrtmin18
authorLennart Poettering <lennart@poettering.net>
Thu, 23 Feb 2023 09:35:00 +0000 (10:35 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 1 Mar 2023 08:43:23 +0000 (09:43 +0100)
src/userdb/userdbd-manager.c
src/userdb/userdbd.c

index 7890d047c49742b21e66c6500780a7b967164367..997ef83f577ddbd57eeb42cd5d6da3a4218ab582 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "sd-daemon.h"
 
+#include "common-signal.h"
 #include "fd-util.h"
 #include "fs-util.h"
 #include "mkdir.h"
@@ -102,6 +103,14 @@ int manager_new(Manager **ret) {
         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");
+
         (void) sd_event_set_watchdog(m->event, true);
 
         m->workers_fixed = set_new(NULL);
index 0c321bf41197dffe087301d471cdad3dbcc4537e..2bf37a52c4dfdf23d337ef994b39394351fb65ce 100644 (file)
@@ -37,7 +37,7 @@ static int run(int argc, char *argv[]) {
         if (setenv("SYSTEMD_BYPASS_USERDB", "io.systemd.NameServiceSwitch:io.systemd.Multiplexer:io.systemd.DropIn", 1) < 0)
                 return log_error_errno(errno, "Failed to set $SYSTEMD_BYPASS_USERDB: %m");
 
-        assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, SIGTERM, SIGINT, SIGUSR2, -1) >= 0);
+        assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, SIGTERM, SIGINT, SIGUSR2, SIGRTMIN+18, -1) >= 0);
 
         r = manager_new(&m);
         if (r < 0)