180. Signal Handling with signal Module

Snippet 1: Basic Signal Handling

Copy

import signal
import sys

def signal_handler(signum, frame):
    print(f"Signal {signum} received")
    sys.exit(0)

# Handle SIGINT (Ctrl+C)
signal.signal(signal.SIGINT, signal_handler)

print("Press Ctrl+C to exit.")
signal.pause()  # Wait for signals

Snippet 2: Handling SIGTERM (Termination Signal)

Copy

import signal
import sys

def signal_handler(signum, frame):
    print(f"Received termination signal: {signum}")
    sys.exit(0)

# Handle SIGTERM (kill command)
signal.signal(signal.SIGTERM, signal_handler)

print("Waiting for termination signal...")
signal.pause()  # Wait for signals

Snippet 3: Custom Signal Handler with Arguments

Copy


Snippet 4: Ignoring Signals

Copy


Snippet 5: Raising a Signal Programmatically

Copy


Snippet 6: Setting a Timeout with SIGALRM

Copy


Snippet 7: Handling Multiple Signals

Copy


Snippet 8: Re-setting a Signal Handler

Copy


Snippet 9: Using signal.pause() for Blocking

Copy


Snippet 10: Handling Signals in a Separate Thread

Copy


Last updated