在我的Python 3程序中,我有时会打开一个GNU屏幕会话。 关闭此会话后,输出
[screen is terminating]
打印到周围的会话(运行python程序的终端)。我该如何预防?
我目前正在运行
import subprocess
subprocess.run('screen',stdout=subprocess.PIPE,stderr=subprocess.PIPE)
通常,[stdout,stderr]=subprocess.PIPE
会捕获输出并出错(例如,对于run('echo hello',stdout=subprocess.PIPE)
不会打印任何内容),但是由于某些原因,它不适用于screen
答案 0 :(得分:2)
如果您不想在控制台上打印任何内容,则应该捕获stderr
和stdout
。
Screen
可能还检测到stdin
是tty并将其用于I / O。不过,我不知道给它添加管道还是/dev/null
是否可以解决问题。试试看,看看是否可行。
Screen
很可能需要访问tty
设备才能正常工作。您可以为此创建一个tty(通过打开/dev/ptmx
并为screen
提供相应的/dev/pts/N
文件),但这绝非易事。