18 lines
576 B
Python
18 lines
576 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)
|