from pathlib import Path import os, subprocess, sys, signal out = Path(__file__).resolve().parent root = Path('/mnt/storage/src/mosaic-stack-rocko-178') env = {**os.environ, 'TMPDIR': '/mnt/storage/scratch/rocko-178/tmp', 'DOCKER_HOST': 'unix:///nonexistent.sock', 'MOSAIC_CONFIG': '/mnt/storage/scratch/rocko-178/no-live-config.json'} with (out / sys.argv[1]).open('w') as f: p = subprocess.Popen(sys.argv[2:], cwd=root, env=env, stdout=f, stderr=subprocess.STDOUT, start_new_session=True) try: rc = p.wait(timeout=900) except subprocess.TimeoutExpired: os.killpg(p.pid, signal.SIGKILL) p.wait() rc = 124 print(sys.argv[1], 'exit', rc) sys.exit(rc)