Skip to content

Instantly share code, notes, and snippets.

@athoune
Created June 30, 2016 13:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save athoune/26ba27446bbcab9f2b9d801723c67eda to your computer and use it in GitHub Desktop.
Save athoune/26ba27446bbcab9f2b9d801723c67eda to your computer and use it in GitHub Desktop.
import asyncio
import functools
import os
import signal
def ask_signal(signame, exit=False):
print("got signal %s" % signame)
if exit:
loop.stop()
loop = asyncio.get_event_loop()
for signame in ('SIGINT', 'SIGTERM'):
loop.add_signal_handler(getattr(signal, signame),
functools.partial(ask_signal, signame, True))
for signame in ('SIGHUP', 'SIGUSR1'):
loop.add_signal_handler(getattr(signal, signame),
functools.partial(ask_signal, signame))
print("Event loop running forever, press Ctrl+C to interrupt.")
print("pid %s: send SIGINT or SIGTERM to exit." % os.getpid())
try:
loop.run_forever()
finally:
loop.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment