以下每份指南都使用 exec() 在沙箱中运行命令。它们在输出传递给调用方的方式和命令结束条件方面有所不同:
| 指南 | 输出如何传递给调用方 | 命令结束条件 |
|---|---|---|
| 运行 Python 代码 | 代码退出后,在响应中返回 | 代码退出 |
| 运行 Git 仓库中的测试 | 测试完成后,在响应中返回 | 测试完成 |
| 流式输出命令结果 | 命令运行时,通过服务器发送事件返回 | 进程退出,或连接断开时会向其发送 SIGTERM |
| 运行后台进程 | 写入文件,由后续请求读取 | 命令退出,或后续请求将其停止 |
| 跟踪后台进程 | 作为服务器发送事件,从这些文件中发送 | 命令退出,或后续请求将其停止 |
| 在后台运行服务器 | 通过服务器端口访问,并写入日志文件 | 容器停止,或请求将其停止 |
| 在浏览器中打开终端 | 通过 WebSocket 在交互式终端中显示 | 你运行 exit,或 Worker 结束会话 |
有关 exec() 接受的所有选项,请参阅 Containers 文档中的执行命令。