tree-wide: make sigprocmask() changes more automatic

This tries to get rid of most manual sigprocmask() changes, in favour
of:

1. The SD_EVENT_SIGNAL_PROCMASK flag to sd_event_add_signal()
2. The sd_event_set_signal_exit() call for handling SIGTERM/SIGINT
3. Move masking of SIGWINCH into ptyfwd, out of nspawn/vmspawn/run

And while we are at it get rid of a bunch of event source fields whose
lifetime is bound to the sd_event object they belong to anyway, and make
use of the "floating" event source feature of sd-event instead.
This commit is contained in:
Lennart Poettering
2024-09-13 17:12:28 +02:00
parent a7af35f1d4
commit d7a6bb9891
25 changed files with 77 additions and 104 deletions
+4
View File
@@ -5601,6 +5601,10 @@ static int run_container(
log_warning_errno(r, "Failed to send readiness notification, ignoring: %m");
}
/* Note: we do not use SD_EVENT_SIGNAL_PROCMASK or sd_event_set_signal_exit(), since we want the
* signals to be block continously, even if we destroy the event loop and allocate a new one on
* container reboot. */
if (arg_kill_signal > 0) {
/* Try to kill the init system on SIGINT or SIGTERM */
(void) sd_event_add_signal(event, NULL, SIGINT, on_orderly_shutdown, PID_TO_PTR(*pid));