summaryrefslogtreecommitdiff
path: root/src/userdb
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2023-02-23 10:35:00 +0100
committerLennart Poettering <lennart@poettering.net>2023-03-01 09:43:23 +0100
commitee32689f39d7a0bf3cec09aa729ccc61aa0bd10f (patch)
tree2988bbefd3d8f0ffc272c92fa28e451d5c00698d /src/userdb
parent988851b6f91690437a7a1adc1b4c4af994cf8aa0 (diff)
downloadsystemd-ee32689f39d7a0bf3cec09aa729ccc61aa0bd10f.tar.gz
userdbd: hook up memory pressure and sigrtmin18
Diffstat (limited to 'src/userdb')
-rw-r--r--src/userdb/userdbd-manager.c9
-rw-r--r--src/userdb/userdbd.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/userdb/userdbd-manager.c b/src/userdb/userdbd-manager.c
index 7890d047c4..997ef83f57 100644
--- a/src/userdb/userdbd-manager.c
+++ b/src/userdb/userdbd-manager.c
@@ -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);
diff --git a/src/userdb/userdbd.c b/src/userdb/userdbd.c
index 0c321bf411..2bf37a52c4 100644
--- a/src/userdb/userdbd.c
+++ b/src/userdb/userdbd.c
@@ -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)