终止命令用于停止沙箱中正在运行的后台进程。它不会终止整个沙箱。
终止后台命令
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)业务系统应保存自己启动的后台命令 pid。sandbox.commands.list() 会返回运行中的命令和 PTY 会话;普通命令使用 sandbox.commands.kill(pid) 终止,PTY 会话使用 sandbox.pty.kill(pid) 终止。清理前应根据进程用途或业务保存的 pid 区分处理,避免把交互式会话当作普通后台命令。
使用建议
长任务应设置业务侧超时,并在超时后主动终止命令。终止命令只释放进程资源;如果整个任务结束,还应调用 sandbox.kill() 释放沙箱。
该文章对您有帮助吗?