Python:何时使用pty.fork()与os.fork()

Tho*_*hle 14 python linux fork kill pty

我不确定是否使用pty.fork()os.fork()从我的应用程序生成外部后台进程.(如国际象棋引擎)

如果父节点被终止,我希望生成的进程死亡,就像在终端中生成应用程序一样.

两个叉子之间有什么起伏?

Den*_*ach 10

子进程与创建os.fork()继承标准输入/输出/ stderr的从父进程,而儿童与创建pty.fork()被连接到新的伪终端.当您编写像xterm这样的程序时,您需要稍后:pty.fork()在父进程中返回一个描述符来控制子进程的终端,这样您就可以直观地表示来自它的数据并将用户操作转换为终端输入序列.

更新:

来自pty(7)手册页:

期望连接到终端的进程可以打开伪终端的从端,然后由打开主端的程序驱动.写在主端的任何内容都提供给从端的进程,就好像它是在终端上输入的一样.例如,将中断字符(通常是control-C)写入主设备将导致为连接到从设备的前台进程组生成中断信号(SIGINT).相反,写入伪终端的从端的任何内容都可以由连接到主端的进程读取.