问题
I am writing a python program which reads from a queue through a infinite while loop. How can I handle signal sent by OS / Keyboard interrupt(CTRL+C) to break from the while loop and close active connections and files and exit the program gracefully instead of killing the process.
while True:
read_from_file_and_do_something()
## Handle a signal of shutdown here.
## Send email before exiting.
This program will run as a daemon. Thus would require a signal to be sent.
回答1:
I think "signal" module is what you are looking for,
def handler(signum, frame):
print 'Signal handler called with signal', signum
signal.signal(signal.SIGABRT, handler)
来源:https://stackoverflow.com/questions/33234055/how-to-handle-os-signal-in-a-python-program