连接命令用于重新附着到一个正在后台运行的进程。适合长任务、服务进程和需要跨请求读取结果的场景。
启动后台命令
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 和用途。不要只依赖进程列表猜测业务状态,尤其是在同一个沙箱内同时运行多个任务时。
该文章对您有帮助吗?