Ich beende Python-Prozesse mit SIGQUIT, indem ich Ctrl\manchmal drücke (normalerweise meine eigenen, die sich schlecht benehmen). Kann ich die Meldung „Python unerwartet beendet“ verhindern? Ich weiß, dass ich einfach auf Escape drücken kann, also ist es nicht so schlimm.
Wenn Sie die Dialogfelder für Absturzberichte nie sehen möchten, können Sie sie deaktivieren:
defaults write com.apple.CrashReporter DialogType none
Melden Sie sich ab und wieder an, um die Änderungen zu übernehmen.
defaults write com.apple.CrashReporter DialogType none
selektiv nur für eine bestimmte App zu tun?Sie können die Nachricht stattdessen auch als Benachrichtigung anzeigen lassen:
defaults write com.apple.CrashReporter UseUNC 1
Das Standardverhalten beim Empfang von SIGQUIT besteht darin, den Kern zu entleeren und zu beenden; Der Crash-Reporter wird als Teil dieses Prozesses ausgelöst.
Beginnend mit 10.5(?) sollte es ausreichen, einen Signal-Handler für SIGQUIT zu setzen, um den Crash-Reporter zu vermeiden; Wahrscheinlich möchten Sie, dass der Handler auch exit aufruft.
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()
Der obige Code wurde auf 10.8.5 gegen /usr/bin/python
2.7.2 getestet.
defaults write com.apple.CrashReporter DialogType none
selektiv nur für eine bestimmte App zu tun?
ughoavgfhw
Thomas
t.daemon = True
diese verwenden sollte, und das tue ich größtenteils auch.) Aus verschiedenen Gründen muss ich manchmal Strg-\ verwenden.mmmmmm
Thomas