Skip to main content
PTY(伪终端)是一种虚拟终端接口,让程序可以像连接真实终端一样与 shell 交互。使用 sandbox.pty 模块可以创建交互式终端会话,用于运行命令、接收输入,并可在运行中调整大小——适用于 REPL 和调试器、需要提示输入的交互式 CLI,以及需要监控的长时间运行进程。
注意: PTY 由其进程 ID(pid)标识,该 ID 由 create() 返回句柄上提供。发送输入、调整大小、连接和终止时都需传入该 pid。输出以原始字节形式传递给回调函数。

创建 PTY

创建一个 PTY,并通过回调接收其输出。它会返回一个句柄,其 pid 用于标识该 PTY。

发送输入

通过 pid 向运行中的 PTY 发送输入。数据为原始字节。

调整 PTY 大小

当终端窗口尺寸发生变化时,调用 resize

连接到运行中的 PTY

通过 pid 连接到已在运行的 PTY。可以通过 sandbox.commands.list() 获取正在运行的进程。返回的句柄会通过回调接收后续输出。

终止 PTY

kill 使用 SIGKILL 终止 PTY。如果 PTY 被成功终止则返回 true;如果找不到对应 pid 的 PTY 则返回 false

交互式示例

创建一个 PTY,发送一条需要提示输入的交互式命令,然后等待其结束并读取退出码。在 Python 中,wait(on_pty=...) 会将输出流式传递给回调并返回结果。
最后修改于 2026年9月1日