终止命令

更新时间:
复制 MD 格式

终止命令用于停止沙箱中正在运行的后台进程。它不会终止整个沙箱。

终止后台命令

TypeScript 示例:

const handle = await sandbox.commands.run("sleep 600", {
  background: true,
  timeoutMs: 10 * 60 * 1000
});

const killed = await sandbox.commands.kill(handle.pid);
console.log(killed);

Python 示例:

handle = sandbox.commands.run(
    "sleep 600",
    background=True,
    timeout=10 * 60,
)

killed = sandbox.commands.kill(handle.pid)
print(killed)

清理后台命令

TypeScript 示例:

const commandPids = [handle.pid];

for (const pid of commandPids) {
  await sandbox.commands.kill(pid);
}

Python 示例:

command_pids = [handle.pid]

for pid in command_pids:
    sandbox.commands.kill(pid)

业务系统应保存自己启动的后台命令 pidsandbox.commands.list() 会返回运行中的命令和 PTY 会话;普通命令使用 sandbox.commands.kill(pid) 终止,PTY 会话使用 sandbox.pty.kill(pid) 终止。清理前应根据进程用途或业务保存的 pid 区分处理,避免把交互式会话当作普通后台命令。

使用建议

长任务应设置业务侧超时,并在超时后主动终止命令。终止命令只释放进程资源;如果整个任务结束,还应调用 sandbox.kill() 释放沙箱。