Mato los procesos de Python con SIGQUIT presionando Ctrl \ a veces (generalmente los míos que se están portando mal). ¿Puedo evitar el mensaje "Python quit inesperadamente"? Sé que puedo simplemente escapar, así que no está tan mal.
Mato los procesos de Python con SIGQUIT presionando Ctrl \ a veces (generalmente los míos que se están portando mal). ¿Puedo evitar el mensaje "Python quit inesperadamente"? Sé que puedo simplemente escapar, así que no está tan mal.
Si nunca desea ver los cuadros de diálogo del informe de fallos, hay una preferencia para deshabilitarlos:
defaults write com.apple.CrashReporter DialogType none
Cierre la sesión y vuelva a iniciarla para aplicar los cambios.
También puede hacer que el mensaje aparezca como una notificación en su lugar:
defaults write com.apple.CrashReporter UseUNC 1
El comportamiento predeterminado al recibir SIGQUIT es volcar el núcleo y salir; el reportero de fallos se activa como parte de este proceso.
Comenzando con 10.5 (?), simplemente establecer un manejador de señal para SIGQUIT debería ser suficiente para evitar el reporte de fallos; probablemente querrá que el controlador 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 se probó en 10.8.5 contra /usr/bin/python
, que es 2.7.2.
Lea otras preguntas en las etiquetas macos applications python error signal