[issue24261] Add a command line flag to suppress default signal handlers

2015-05-21 Thread Evgeny Kapun

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



[issue24261] Add a command line flag to suppress default signal handlers

2015-05-21 Thread R. David Murray

R. David Murray added the comment:

See also issue 14228.

--
nosy: +r.david.murray

___
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



[issue24261] Add a command line flag to suppress default signal handlers

2015-05-21 Thread Martin Panter

Martin Panter added the comment:

I have often wished for Python to have two modes:

1. Programming development mode: something like “python -b -Wdefault”, enabling 
warnings, printing full trackbacks for SIGINT and EPIPE errors, etc. Also 
possibly catching SystemExit() when raised inside the interactive interpreter.

2. End-user mode: hide deprecation warnings, no traceback for SIGINT and EPIPE 
errors (just set an exit status or maybe reraise using the default OS signal 
handler to set the right exit signal flag to the parent process).

Among other things, this would allow easily switching between reporting 
KeyboardInterrupt tracebacks (whether triggered at startup or by the main 
code), and hiding them.

--
nosy: +vadmium

___
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