From 96d4750e7e435a68104c6575a78774f17370afc1 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Wed, 5 Nov 2025 17:42:28 +0100 Subject: [PATCH] core/exec-invoke: pass the correct pid (1) to processes in pidns --- src/core/exec-invoke.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/core/exec-invoke.c b/src/core/exec-invoke.c index d9b976b432d..592b593e997 100644 --- a/src/core/exec-invoke.c +++ b/src/core/exec-invoke.c @@ -2009,6 +2009,7 @@ static int build_environment( _cleanup_strv_free_ char **e = NULL; size_t n = 0; + pid_t exec_pid; int r; assert(c); @@ -2016,10 +2017,12 @@ static int build_environment( assert(cgroup_context); assert(ret); + exec_pid = needs_sandboxing && exec_needs_pid_namespace(c, p) ? 1 : getpid_cached(); + if (p->n_socket_fds + p->n_stashed_fds > 0) { _cleanup_free_ char *joined = NULL; - r = strv_extendf_with_size(&e, &n, "LISTEN_PID="PID_FMT, getpid_cached()); + r = strv_extendf_with_size(&e, &n, "LISTEN_PID="PID_FMT, exec_pid); if (r < 0) return r; @@ -2044,7 +2047,7 @@ static int build_environment( } if ((p->flags & EXEC_SET_WATCHDOG) && p->watchdog_usec > 0) { - r = strv_extendf_with_size(&e, &n, "WATCHDOG_PID="PID_FMT, getpid_cached()); + r = strv_extendf_with_size(&e, &n, "WATCHDOG_PID="PID_FMT, exec_pid); if (r < 0) return r; @@ -2174,7 +2177,7 @@ static int build_environment( return r; } - r = strv_extendf_with_size(&e, &n, "SYSTEMD_EXEC_PID=" PID_FMT, getpid_cached()); + r = strv_extendf_with_size(&e, &n, "SYSTEMD_EXEC_PID=" PID_FMT, exec_pid); if (r < 0) return r; -- 2.47.3