连接命令

更新时间:
复制 MD 格式

连接命令用于重新附着到一个正在后台运行的进程。适合长任务、服务进程和需要跨请求读取结果的场景。

启动后台命令

TypeScript 示例:

const handle = await sandbox.commands.run("python3 -m http.server 8000", {
  background: true,
  timeoutMs: 10 * 60 * 1000,
});

console.log(handle.pid);

Python 示例:

handle = sandbox.commands.run(
    "python3 -m http.server 8000",
    background=True,
    timeout=10 * 60,
)

print(handle.pid)

重新连接命令

TypeScript 示例:

const running = await sandbox.commands.list();
const server = running.find((process) => process.pid === handle.pid);

if (server) {
  const connected = await sandbox.commands.connect(server.pid);
  console.log(connected.pid);
}

Python 示例:

running = sandbox.commands.list()
server = next((process for process in running if process.pid == handle.pid), None)

if server:
    connected = sandbox.commands.connect(server.pid)
    print(connected.pid)

连接后可以继续等待进程结束或读取后续输出。不同 SDK 版本的 CommandHandle 能力可能略有差异,建议以当前 SDK 类型定义为准。

使用建议

业务系统应保存后台命令的 pid 和用途。不要只依赖进程列表猜测业务状态,尤其是在同一个沙箱内同时运行多个任务时。