From d1b9a3fc7e819dbb4f4b4f3f7b6fab30cfc572d4 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Thu, 20 Jun 2019 20:33:18 +0000 Subject: Enhanced sys_command --- archinstall.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'archinstall.py') diff --git a/archinstall.py b/archinstall.py index 597c6224..a88265c8 100644 --- a/archinstall.py +++ b/archinstall.py @@ -193,7 +193,7 @@ class sys_command(): if len(self.opts['triggers']) == 0: if 'debug' in self.opts and self.opts['debug']: print('[N] Waiting for last command to finish...') - if bytes(f'[root@{args["hostname"]} ~]#'.lower(), 'UTF-8') in trace_log[-len(f'[root@{args["hostname"]} ~]#')-5:].lower(): + if bytes(f'[root@{args["hostname"]} ~]#'.lower(), 'UTF-8') in trace_log[0-len(f'[root@{args["hostname"]} ~]#')-5:].lower(): if 'debug' in self.opts and self.opts['debug']: print('[N] Last command finished, exiting subsystem.') alive = False @@ -226,21 +226,23 @@ class sys_command(): # We need to flush the output of shutdown now, otherwise the # Popen() handle will hang and we'll never exit out of os.waitpid() later on. - last = time() - while time()-last < 5: + alive = True + while alive: for fileno, event in poller.poll(0.1): try: output = os.read(child_fd, 8192).strip() trace_log += output except OSError: - last = time() - 60 + alive = False break if 'debug' in self.opts and self.opts['debug']: if len(output): print(output) - last = time() + if b'Container temporary has been shutdown.' in trace_log[0-len('Container temporary has been shutdown.')-5:]: + alive = False + break if 'debug' in self.opts and self.opts['debug']: print('[N] Waiting for exit code.') -- cgit v1.2.3-70-g09d2