Files
2026-07-13 13:17:40 +08:00

47 lines
1.2 KiB
Python

import argparse
import os
import sys
parser = argparse.ArgumentParser(
description=("Set up the environment for a Ray worker and launch the worker.")
)
parser.add_argument(
"--worker-setup-hook",
type=str,
help="the module path to a Python function to run to set up the "
"environment for a worker and launch the worker.",
)
parser.add_argument(
"--serialized-runtime-env", type=str, help="the serialized parsed runtime env dict"
)
parser.add_argument(
"--serialized-runtime-env-context",
type=str,
help="the serialized runtime env context",
)
parser.add_argument(
"--allocated-instances-serialized-json",
type=str,
help="the worker allocated resource",
)
# The worker is not set up yet, so we can't get session_dir from the worker.
parser.add_argument(
"--session-dir", type=str, help="the directory for the current session"
)
parser.add_argument("--language", type=str, help="the language type of the worker")
args, remaining_args = parser.parse_known_args()
py_executable: str = sys.executable
command_str = " ".join([f"exec {py_executable}"] + remaining_args)
child_pid = os.fork()
if child_pid == 0:
# child process
os.execvp("bash", ["bash", "-c", command_str])
os.waitpid(child_pid, 0)