summaryrefslogtreecommitdiff
path: root/src/nspawn
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2023-02-23 10:31:59 +0100
committerLennart Poettering <lennart@poettering.net>2023-03-01 09:43:23 +0100
commit988851b6f91690437a7a1adc1b4c4af994cf8aa0 (patch)
tree56ab7e45ffcffc281709b6ebcfb3faa23718916b /src/nspawn
parentfdeb10b87f140f071c584deba2395e6a6aafcd11 (diff)
downloadsystemd-988851b6f91690437a7a1adc1b4c4af994cf8aa0.tar.gz
nspawn: hook up memory pressure + sigrtmin+18
Diffstat (limited to 'src/nspawn')
-rw-r--r--src/nspawn/nspawn.c9
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");