def __enter__(self):
# The os.setpgrp() is passed in the argument preexec_fn so
# it's run after the fork() and before exec() to run the shell.
my_env = os.environ.copy()
for k, v in self.extra_env_vars.items():
print('setting %s=%s (expanded to "%s") in environment' % (k, v, os.path.expandvars(str(v))))
# Allow updates like PATH='/foo/bar/:$PATH'
my_env[k] = os.path.expandvars(str(v))
print 'command:', self.cmd
self.proc = sp.Popen(self.cmd, shell=True, env=my_env, preexec_fn=os.setpgrp)
time.sleep(5) # give process a little time to start
return self.proc
评论列表
文章目录