Python/System Signals

From Fundamental Ramen
< Python
Revision as of 03:09, 28 August 2019 by Tacoball (talk | contribs)
Jump to navigation Jump to search

Gracefully close a process by signal

import signal

def main():
    close_requested = False

    def on_close(signum, frame):
        nonlocal close_requested
        close_requested = True

    for signum in (signal.SIGHUP, signal.SIGINT, signal.SIGTERM):
        signal.signal(signum, on_close)

    while not close_requested:
        # TODO
        time.sleep(1)

if __name__ == '__main__':
    main()