Capturing the SIGINT Signal in Python
In Python, handling signals like SIGINT (generated by pressing Ctrl C) can be achieved through the signal module. This module provides a comprehensive API for managing signals within a Python program.
To capture the SIGINT signal and perform a custom cleanup action, follow these steps:
import signal import sys def signal_handler(sig, frame): print('You pressed Ctrl+C!') # Perform any necessary cleanup tasks هنا sys.exit(0) signal.signal(signal.SIGINT, signal_handler) print('Press Ctrl+C') signal.pause()
In this script, the signal_handler function is defined as the handler for the SIGINT signal. When Ctrl C is pressed, this function is invoked, which prints a message to indicate that the signal was received. You can then include any necessary cleanup code within this function, such as closing database connections or terminating child processes.
The signal.signal function is used to register the signal_handler function as the handler for SIGINT. The signal.pause() function pauses the execution of the script until a signal is received, suspending all other operations until the user presses Ctrl C.
This approach allows you to gracefully handle SIGINT in your Python script, performing custom cleanup tasks before terminating the program. For further information and documentation, refer to the provided links in the code.
The above is the detailed content of How Can I Gracefully Handle Ctrl C Interruptions (SIGINT) in My Python Program?. For more information, please follow other related articles on the PHP Chinese website!