summaryrefslogtreecommitdiff
path: root/src/machine
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2023-02-15 11:31:45 +0100
committerLennart Poettering <lennart@poettering.net>2023-03-01 09:43:23 +0100
commit4bdb8bd9ec82b5b7ff3731b6ccb16bb8139947fb (patch)
treec585a4dcedd61c569ab968d26cd81915c981ff9b /src/machine
parent375c34d8cde773821531e1fa6b854e7be5f3d4f2 (diff)
downloadsystemd-4bdb8bd9ec82b5b7ff3731b6ccb16bb8139947fb.tar.gz
machined: add support for memory pressure + SIGRTMIN+18
Diffstat (limited to 'src/machine')
-rw-r--r--src/machine/machined.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/machine/machined.c b/src/machine/machined.c
index b4ff97ab70..8152bda50d 100644
--- a/src/machine/machined.c
+++ b/src/machine/machined.c
@@ -12,6 +12,7 @@
#include "bus-log-control-api.h"
#include "bus-polkit.h"
#include "cgroup-util.h"
+#include "common-signal.h"
#include "daemon-util.h"
#include "dirent-util.h"
#include "discover-image.h"
@@ -61,6 +62,15 @@ static 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_full_errno(ERRNO_IS_NOT_SUPPORTED(r) || ERRNO_IS_PRIVILEGE(r) || r == -EHOSTDOWN ? LOG_DEBUG : LOG_NOTICE, r,
+ "Unable to create memory pressure event source, ignoring: %m");
+
(void) sd_event_set_watchdog(m->event, true);
*ret = TAKE_PTR(m);
@@ -339,7 +349,7 @@ static int run(int argc, char *argv[]) {
* make sure this check stays in. */
(void) mkdir_label("/run/systemd/machines", 0755);
- assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, SIGTERM, SIGINT, -1) >= 0);
+ assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, SIGTERM, SIGINT, SIGRTMIN+18, -1) >= 0);
r = manager_new(&m);
if (r < 0)