systemd-inhibit: ignore signal interrupt from keyboard (#8569)
By default both processes, systemd-inhibit and the forked one, receive the signals. Pressing Ctrl+C on the keyboard results in SIGINT being sent to the processes, followed by SIGTERM being sent to the forked process when systemd-inhibit exits. This can cause trouble when the forked process does not clean up properly but exit immediately. Instead make systemd-inhibit ignore SIGINT, leaving it to the forked process to clean up and exit.
This commit is contained in:
parent
2d684e65aa
commit
106f12a08f
|
@ -254,6 +254,9 @@ int main(int argc, char *argv[]) {
|
|||
_cleanup_free_ char *w = NULL;
|
||||
pid_t pid;
|
||||
|
||||
/* Ignore SIGINT and allow the forked process to receive it */
|
||||
(void) ignore_signals(SIGINT, -1);
|
||||
|
||||
if (!arg_who)
|
||||
arg_who = w = strv_join(argv + optind, " ");
|
||||
|
||||
|
|
Loading…
Reference in a new issue