diff --git a/compose/cli/main.py b/compose/cli/main.py index 84786abc7..63a0036b4 100644 --- a/compose/cli/main.py +++ b/compose/cli/main.py @@ -61,6 +61,7 @@ console_handler = logging.StreamHandler(sys.stderr) def main(): + signals.ignore_sigpipe() try: command = dispatch() command() diff --git a/compose/cli/signals.py b/compose/cli/signals.py index 68a0598e1..9b360c44e 100644 --- a/compose/cli/signals.py +++ b/compose/cli/signals.py @@ -3,6 +3,8 @@ from __future__ import unicode_literals import signal +from ..const import IS_WINDOWS_PLATFORM + class ShutdownException(Exception): pass @@ -19,3 +21,10 @@ def set_signal_handler(handler): def set_signal_handler_to_shutdown(): set_signal_handler(shutdown) + + +def ignore_sigpipe(): + # Restore default behavior for SIGPIPE instead of raising + # an exception when encountered. + if not IS_WINDOWS_PLATFORM: + signal.signal(signal.SIGPIPE, signal.SIG_DFL)