import os,subprocess,signal proxy=subprocess.Popen(['python3','/integration/proxy.py']) app=subprocess.Popen(['dotnet','src/bin/live_release/SwarmUI.dll','--host','127.0.0.1','--port',os.environ.get('SWARM_PORT','8125'),'--launch_mode','none','--data_dir','/swarm/Data','--loglevel','Warning']) def stop(*_): for process in (app,proxy): if process.poll() is None:process.terminate() signal.signal(signal.SIGTERM,stop);signal.signal(signal.SIGINT,stop) try:app.wait() finally: stop() for process in (app,proxy): try:process.wait(timeout=10) except subprocess.TimeoutExpired:process.kill();process.wait()