Setting a signal handler

Using the signal function in the signal module you can write a custom handler for unix process signals.

import sys
import signal
from time import sleep


def main():
    def _sigint_handler(sig, frame):
        print("SIGINT has been recevied", flush=True)
        sys.exit(0)

    signal.signal(signal.SIGINT, _sigint_handler)

    print("Executing... Press Ctrl+C to stop...", flush=True)
    while True:
        sleep(1)


if __name__ == "__main__":
    main()