diff options
author | Lennart Poettering <lennart@poettering.net> | 2023-02-23 10:31:59 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2023-03-01 09:43:23 +0100 |
commit | 988851b6f91690437a7a1adc1b4c4af994cf8aa0 (patch) | |
tree | 56ab7e45ffcffc281709b6ebcfb3faa23718916b /src/nspawn | |
parent | fdeb10b87f140f071c584deba2395e6a6aafcd11 (diff) | |
download | systemd-988851b6f91690437a7a1adc1b4c4af994cf8aa0.tar.gz |
nspawn: hook up memory pressure + sigrtmin+18
Diffstat (limited to 'src/nspawn')
-rw-r--r-- | src/nspawn/nspawn.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 36d336dfc8..e498dc59c6 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -35,6 +35,7 @@ #include "capability-util.h" #include "cgroup-util.h" #include "chase-symlinks.h" +#include "common-signal.h" #include "copy.h" #include "cpu-set-util.h" #include "creds-util.h" @@ -5162,6 +5163,12 @@ static int run_container( (void) sd_event_add_signal(event, NULL, SIGTERM, NULL, NULL); } + (void) sd_event_add_signal(event, NULL, SIGRTMIN+18, sigrtmin18_handler, NULL); + + r = sd_event_add_memory_pressure(event, NULL, NULL, NULL); + if (r < 0) + log_debug_errno(r, "Failed allocate memory pressure event source, ignoring: %m"); + /* Exit when the child exits */ (void) sd_event_add_signal(event, NULL, SIGCHLD, on_sigchld, PID_TO_PTR(*pid)); @@ -5803,7 +5810,7 @@ static int run(int argc, char *argv[]) { log_info("Spawning container %s on %s.\nPress Ctrl-] three times within 1s to kill container.", arg_machine, arg_image ?: arg_directory); - assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, SIGWINCH, SIGTERM, SIGINT, -1) >= 0); + assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, SIGWINCH, SIGTERM, SIGINT, SIGRTMIN+18, -1) >= 0); if (prctl(PR_SET_CHILD_SUBREAPER, 1, 0, 0, 0) < 0) { r = log_error_errno(errno, "Failed to become subreaper: %m"); |