signals.py 645 B

123456789101112131415161718192021222324252627282930
  1. from __future__ import absolute_import
  2. from __future__ import unicode_literals
  3. import signal
  4. from ..const import IS_WINDOWS_PLATFORM
  5. class ShutdownException(Exception):
  6. pass
  7. def shutdown(signal, frame):
  8. raise ShutdownException()
  9. def set_signal_handler(handler):
  10. signal.signal(signal.SIGINT, handler)
  11. signal.signal(signal.SIGTERM, handler)
  12. def set_signal_handler_to_shutdown():
  13. set_signal_handler(shutdown)
  14. def ignore_sigpipe():
  15. # Restore default behavior for SIGPIPE instead of raising
  16. # an exception when encountered.
  17. if not IS_WINDOWS_PLATFORM:
  18. signal.signal(signal.SIGPIPE, signal.SIG_DFL)