Interrupt more forcefully with 3 times Ctrl+C.
This commit is contained in:
parent
cdde060135
commit
2dfc599e3c
@ -654,7 +654,7 @@ class Application(QApplication):
|
|||||||
def interrupt(self, signum, _frame):
|
def interrupt(self, signum, _frame):
|
||||||
"""Handler for signals to gracefully shutdown (SIGINT/SIGTERM)."""
|
"""Handler for signals to gracefully shutdown (SIGINT/SIGTERM)."""
|
||||||
log.destroy.info("SIGINT/SIGTERM received, shutting down!")
|
log.destroy.info("SIGINT/SIGTERM received, shutting down!")
|
||||||
log.destroy.info("Press Ctrl-C again to forcefully quit.")
|
log.destroy.info("Do the same again to forcefully quit.")
|
||||||
signal.signal(signal.SIGINT, self.interrupt_forcefully)
|
signal.signal(signal.SIGINT, self.interrupt_forcefully)
|
||||||
signal.signal(signal.SIGTERM, self.interrupt_forcefully)
|
signal.signal(signal.SIGTERM, self.interrupt_forcefully)
|
||||||
# If we call shutdown directly here, we get a segfault.
|
# If we call shutdown directly here, we get a segfault.
|
||||||
@ -663,7 +663,16 @@ class Application(QApplication):
|
|||||||
def interrupt_forcefully(self, signum, _frame):
|
def interrupt_forcefully(self, signum, _frame):
|
||||||
"""Interrupt forcefully on the second SIGINT/SIGTERM request."""
|
"""Interrupt forcefully on the second SIGINT/SIGTERM request."""
|
||||||
log.destroy.info("Forceful quit requested, goodbye cruel world!")
|
log.destroy.info("Forceful quit requested, goodbye cruel world!")
|
||||||
self.exit(128 + signum)
|
log.destroy.info("Do the same again to quit with even more force.")
|
||||||
|
signal.signal(signal.SIGINT, self.interrupt_really_forcefully)
|
||||||
|
signal.signal(signal.SIGTERM, self.interrupt_really_forcefully)
|
||||||
|
# This *should* work without a QTimer, but because of the trouble in
|
||||||
|
# self.interrupt we're better safe than sorry.
|
||||||
|
QTimer.singleShot(0, partial(self.exit, 128 + signum))
|
||||||
|
|
||||||
|
def interrupt_really_forcefully(self, signum, _frame):
|
||||||
|
log.destroy.info("WHY ARE YOU DOING THIS TO ME? :(")
|
||||||
|
sys.exit(128 + signum)
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def shutdown(self, status=0):
|
def shutdown(self, status=0):
|
||||||
|
Loading…
Reference in New Issue
Block a user