From 779f00589af06f2b143deee0cfc77f9b34dde969 Mon Sep 17 00:00:00 2001 From: Sapan Bhatia Date: Fri, 8 Jun 2007 19:59:18 +0000 Subject: [PATCH] *** empty log message *** --- python/vserver.py | 45 ++++++++++++++------------------------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/python/vserver.py b/python/vserver.py index 1c85a94..fd1431d 100644 --- a/python/vserver.py +++ b/python/vserver.py @@ -319,37 +319,20 @@ class VServer: # XXX - we don't support all scripts that vserver script does cmd_pid = 0 first_child = True - for cmd in self.INITSCRIPTS + [None]: - # wait for previous command to terminate, unless it - # is the last one and the caller has specified to wait - if cmd_pid and (cmd != None or wait): - try: - os.waitpid(cmd_pid, 0) - except: - print >>log, "error waiting for %s:" % cmd_pid - traceback.print_exc() - - # end of list - if cmd == None: - os._exit(0) - - # fork and exec next command - cmd_pid = os.fork() - if cmd_pid == 0: - try: - # enter vserver context - self.__do_chcontext(state_file) - arg_subst = { 'runlevel': runlevel } - cmd_args = [cmd[0]] + map(lambda x: x % arg_subst, - cmd[1:]) - print >>log, "executing '%s'" % " ".join(cmd_args) - os.execl(cmd[0], *cmd_args) - except: - traceback.print_exc() - os._exit(1) - else: - # don't want to write state_file multiple times - state_file = None + + self.__do_chcontext(state_file) + + for cmd in self.INITSCRIPTS + [None]: + try: + # enter vserver context + arg_subst = { 'runlevel': runlevel } + cmd_args = [cmd[0]] + map(lambda x: x % arg_subst, + cmd[1:]) + print >>log, "executing '%s'" % " ".join(cmd_args) + os.spawnvp(os.P_WAIT,cmd[0],*cmd_args) + except: + traceback.print_exc() + os._exit(1) # we get here due to an exception in the top-level child process except Exception, ex: -- 2.47.0