2018-02-16 22:02:28 +03:00

21 lines
618 B
Python

import os, signal
def killme_after(delay, loop, sig='SIGINT', pid=None):
"""
:param delay: delay in seconds to execute signal
:param loop: asyncio event loop
:param sig: signal (string), must presents in signal package
:param pid: PID (default is current PID)
:return:
"""
if not hasattr(signal, sig):
print('unknown signal "%s"' % sig)
else:
if not getattr(loop, 'sig_%s' % sig, False):
loop.call_later(delay, os.kill, pid or os.getpid(), getattr(signal, sig))
setattr(loop, 'sig_%s' % sig, True)
return True
return False