Io uccido i processi Python con SIGQUIT premendo Ctrl \ a volte (di solito i miei stessi che si comportano male). Posso impedire al messaggio "Python di uscire in modo imprevisto"? So che posso colpire la fuga, quindi non è così male.
Se non si desidera visualizzare le finestre di dialogo dei rapporti sugli arresti anomali, è preferibile disabilitarli:
defaults write com.apple.CrashReporter DialogType none
Esci e torna indietro per applicare le modifiche.
Puoi anche far apparire il messaggio come una notifica:
defaults write com.apple.CrashReporter UseUNC 1
Il comportamento predefinito durante la ricezione di SIGQUIT è di eseguire il dump di core e uscire; il cronista dei crash viene attivato come parte di questo processo.
Partire con 10.5 (?) semplicemente impostando un gestore di segnale per SIGQUIT dovrebbe essere sufficiente per evitare il reporter di crash; probabilmente vorrai che il gestore chiami anche 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()
Il codice sopra è stato testato il 10.8.5 contro /usr/bin/python
che è 2.7.2.
Leggi altre domande sui tag python applications macos error signal