【发布时间】:2019-03-25 14:12:31
【问题描述】:
我正在开发一个用 python 编写的终端多路复用器。 在基于 Ubuntu 的发行版上,我看到了错误:
bash: cannot set terminal process group (9862): Inappropriate ioctl for device
bash: no job control in this shell
tmp@tmp-VirtualBox:
在 openSuSE 和 Fedora 上,我没有看到 ioctl 错误,并且作业控制工作正常。
示例问题:
#!/usr/bin/python3
import subprocess
import sys
import pty
import os
master, slave = pty.openpty()
bashCMD = "bash".split()
p = subprocess.Popen(bashCMD, preexec_fn=os.setsid, stdin=slave, stdout=slave, stderr=slave, universal_newlines=True, shell=True)
while p.poll() is None:
data = os.read(master, 1026)
print(str(data))
【问题讨论】:
标签: python ubuntu opensuse ioctl pty