commit: 3b518fe224c6b6006eeadf4fe929325ab5cc5c6a Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Sat May 1 23:01:24 2021 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sat May 1 23:18:00 2021 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=3b518fe2
ebuild-ipc: silently handle KeyboardInterrupt Bug: https://bugs.gentoo.org/787563 Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> bin/ebuild-ipc.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/bin/ebuild-ipc.py b/bin/ebuild-ipc.py index be4a320ce..32f6d53b9 100755 --- a/bin/ebuild-ipc.py +++ b/bin/ebuild-ipc.py @@ -1,16 +1,30 @@ #!/usr/bin/python -b -# Copyright 2010-2018 Gentoo Foundation +# Copyright 2010-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # # This is a helper which ebuild processes can use # to communicate with portage's main python process. +# This block ensures that ^C interrupts are handled quietly. +try: + import os + import signal + + def exithandler(signum, _frame): + signal.signal(signum, signal.SIG_DFL) + os.kill(os.getpid(), signum) + + signal.signal(signal.SIGINT, exithandler) + signal.signal(signal.SIGTERM, exithandler) + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + +except KeyboardInterrupt: + raise SystemExit(130) + import errno import logging -import os import pickle import platform -import signal import sys import time
