From: Franck Bui Date: Thu, 19 Sep 2019 13:24:15 +0000 (+0200) Subject: tty-ask-pwd-agent: treat SIGINT as a request to exit immediately X-Git-Tag: v244-rc1~212^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=998c6da8ca37326dfc38e16fdf0d30b1c6c20d97;p=thirdparty%2Fsystemd.git tty-ask-pwd-agent: treat SIGINT as a request to exit immediately Unlike SIGTERM, SIGINT is now treated as a request to exit as soon as possible. IOW, if SIGINT is received, the agent wont process all remaining passwords before exiting. This allows a more comprehensive behavior when C-c is pressed and when the agent is spawned by systemctl. Before that patch, pressing C-c killed systemctl but left the agent waiting for a password since SIGINT was blocked. The result was pretty clumsy. --- diff --git a/src/tty-ask-password-agent/tty-ask-password-agent.c b/src/tty-ask-password-agent/tty-ask-password-agent.c index 504ba9162db..81eca2ec41a 100644 --- a/src/tty-ask-password-agent/tty-ask-password-agent.c +++ b/src/tty-ask-password-agent/tty-ask-password-agent.c @@ -515,7 +515,7 @@ static int process_and_watch_password_files(void) { return r; assert_se(sigemptyset(&mask) >= 0); - assert_se(sigset_add_many(&mask, SIGINT, SIGTERM, -1) >= 0); + assert_se(sigset_add_many(&mask, SIGTERM, -1) >= 0); assert_se(sigprocmask(SIG_SETMASK, &mask, NULL) >= 0); signal_fd = signalfd(-1, &mask, SFD_NONBLOCK|SFD_CLOEXEC);