Files
2026-10-21 18:48:44 +08:00

22 lines
894 B
Python

import os,sys,json,resource,subprocess,signal,time
from contextlib import nullcontext
from pathlib import Path
base=Path(__file__).parent
resource.setrlimit(resource.RLIMIT_MEMLOCK,(resource.RLIM_INFINITY,resource.RLIM_INFINITY))
cfg=json.loads((base/"command-serial.json").read_text())
env=os.environ.copy();env.update(cfg["env"])
log=base/sys.argv[1] if len(sys.argv)>1 else None
with log.open("w") if log else nullcontext(None) as f:
p=subprocess.Popen(cfg["args"],env=env,stdout=f,stderr=subprocess.STDOUT,start_new_session=True,cwd="/workspace/pytorch")
(base/"serve.pid").write_text(str(p.pid))
print("SERVER_PID",p.pid,"LOG",log if log else "stdout",flush=True)
rc=p.wait()
print("SERVER_EXIT",rc,flush=True)
if rc:
try: os.killpg(p.pid,signal.SIGTERM)
except ProcessLookupError: pass
time.sleep(3)
try: os.killpg(p.pid,signal.SIGKILL)
except ProcessLookupError: pass
sys.exit(rc)