From: Lennart Poettering Date: Wed, 9 Jul 2025 07:36:25 +0000 (+0200) Subject: nspawn: tweak logging/notifications when processing exit requests X-Git-Tag: v258-rc1~79^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0c250b39192dc44412478dba33ba14634cf21db4;p=thirdparty%2Fsystemd.git nspawn: tweak logging/notifications when processing exit requests --- diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 8f18d2fc60e..e21d0ca29b7 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -40,6 +40,7 @@ #include "common-signal.h" #include "copy.h" #include "cpu-set-util.h" +#include "daemon-util.h" #include "dev-setup.h" #include "devnum-util.h" #include "discover-image.h" @@ -2955,13 +2956,19 @@ static int wait_for_container(PidRef *pid, ContainerStatus *container) { static int on_orderly_shutdown(sd_event_source *s, const struct signalfd_siginfo *si, void *userdata) { PidRef *pid = ASSERT_PTR(userdata); + assert(si); + if (pidref_is_set(pid)) if (pidref_kill(pid, arg_kill_signal) >= 0) { - log_info("Trying to halt container. Send SIGTERM again to trigger immediate termination."); + log_info("Trying to halt container by sending %s to container PID 1. Send SIGTERM again to trigger immediate termination.", + signal_to_string(si->ssi_signo)); sd_event_source_set_userdata(s, NULL); + sd_notify(/* unset_environment= */ false, NOTIFY_STOPPING_MESSAGE); return 0; } + log_debug("Got %s, exiting.", signal_to_string(si->ssi_signo)); + sd_event_exit(sd_event_source_get_event(s), 0); return 0; }