Question
I'm working on a python script that starts several processes and database connections. Every now and then I want to kill the script with a Ctrl+C signal, and I'd like to do some cleanup. In Perl I'd do this:
- $SIG{'INT'} = 'exit_gracefully';
- sub exit_gracefully {
- print "Caught ^C \n";
- exit (0);
- }
How-To
Register your handler with signal.signal like this:
- #!/usr/bin/env python
- import signal
- import sys
- def signal_handler(signal, frame):
- print('You pressed Ctrl+C!')
- sys.exit(0)
- signal.signal(signal.SIGINT, signal_handler)
- print('Press Ctrl+C')
- signal.pause()
More documentation on module signal can be found here.
Supplement
* Tutorialspoint - Unix - Signals and Traps
沒有留言:
張貼留言