El comportamiento por defecto al recibir SIGQUIT es volcar el núcleo y salir; el informe de fallos se activa como parte de este proceso.
A partir de la versión 10.5(?), simplemente establecer un manejador de señales para SIGQUIT debería ser suficiente para evitar el reportero de accidentes; probablemente querrá que el manejador también llame a exit.
import signal, sys, os
def sigquit_handler(signum, frame):
print 'SIGQUIT received; exiting'
sys.exit(os.EX_SOFTWARE)
signal.signal(signal.SIGQUIT, sigquit_handler)
# Do your normal work instead of this
print 'Waiting for a signal...'
signal.pause()
El código anterior fue probado en 10.8.5 contra /usr/bin/python
que es 2.7.2.
2 votos
¿Por qué no usas control-C en su lugar? SIGTERM no provoca el mensaje.
1 votos
@ughoavgfhw Estoy trabajando en un REPL que a veces pone la terminal en modo raw, por lo que mi programa recibe el ctrl-c como una pulsación de tecla en su lugar. También a veces tengo problemas de hilos, de tal manera que hilos que deberían morir no lo hacen, y en Python ctrl-c parece que sólo mata el hilo principal. (Sé que debería usar
t.daemon = True
Por diversas razones, a veces necesito usar ctrl- \.0 votos
Si se trata de su código, entonces un problema de desarrollo que su código tiene que hacer frente a las señales
0 votos
@Mark Estoy de acuerdo - esto era un problema mientras que todavía no tenía ese comportamiento trabajando en ciertos casos de borde.