New submission from Evgeny Kapun:

Currently, Python always changes handling of certain signals on startup: 
SIGPIPE is ignored, and SIGINT is handled by a function that raises 
KeyboardInterrupt exception. As a result, if the user presses Ctrl-C, a 
backtrace is printed to stderr.

Some program may want to change this behavior. For example, they may want to 
print a user-friendly message, or to terminate without printing anything. They 
may do that by two means: either by installing their own handler for SIGINT, or 
by using a try..except block to handle the KeyboardInterrupt exception. 
However, they both have a flaw: if SIGINT is received during startup, before 
the program begins execution, the ugly KeyboardInterrupt backtrace is printed 
nevertheless. So, I propose to add a way to stop Python from installing this 
default SIGINT handler. I think that the most obvious way is to add a command 
line switch.

This switch should prevent Python from installing its SIGINT handler. It may 
also prevent it from ignoring SIGPIPE, so that all signal actions would stay 
the same as when the program was executed. After that, programs may use signal 
module to set up their own handlers, if that is desired.

----------
components: Interpreter Core
messages: 243795
nosy: abacabadabacaba
priority: normal
severity: normal
status: open
title: Add a command line flag to suppress default signal handlers
type: enhancement

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue24261>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to