diff --git a/kas/kas.py b/kas/kas.py index a3af239..519f53f 100644 --- a/kas/kas.py +++ b/kas/kas.py @@ -77,8 +77,9 @@ def create_logger(): def _atexit_handler(loop): """ - Terminate the whole process group + Close event loop and terminate the whole process group """ + asyncio.get_event_loop().close() os.killpg(os.getpid(), signal.SIGTERM) diff --git a/kas/libkas.py b/kas/libkas.py index 2a26bdd..773ac99 100644 --- a/kas/libkas.py +++ b/kas/libkas.py @@ -125,16 +125,11 @@ def run_cmd(cmd, cwd, env=None, fail=True, shell=False, liveupdate=True): logging.info('%s$ %s', cwd, cmdstr) logo = LogOutput(liveupdate) - if asyncio.get_event_loop().is_closed(): - loop = asyncio.new_event_loop() - asyncio.set_event_loop(loop) - else: - loop = asyncio.get_event_loop() + loop = asyncio.get_event_loop() retc = loop.run_until_complete( _stream_subprocess(cmd, cwd, env, shell, logo.log_stdout, logo.log_stderr)) - loop.close() if retc and fail: msg = 'Command "{cwd}$ {cmd}" failed\n'.format(cwd=cwd, cmd=cmdstr)