Python/System Signals: Difference between revisions

From Fundamental Ramen
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
### Gracefully close a process by signal
=== Gracefully close a process by signal


<source lang="python3">
<source lang="python3">

Revision as of 03:09, 28 August 2019

=== 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()