python - 完全捕获对 GNU 屏幕的调用输出
问题描述
在我的一个 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
解决方案
如果您不想在控制台上打印任何内容,您应该捕获stderr
以及。stdout
Screen
也可能检测到这stdin
是一个 tty 并将其用于 I/O。不过,我不知道是否给它一个管道或/dev/null
会解决问题。试试看它是否有效。
Screen
很可能需要访问tty
设备才能工作。您可以为它创建一个 tty(通过打开/dev/ptmx
并提供screen
相应的/dev/pts/N
文件),但这绝不是微不足道的。
推荐阅读
- python-3.x - 如何在 python 中使用 Simple ITK 仅更改 Dicom 文件的数组
- javascript - JS HTTP 发布 YAML
- excel - 如何索引匹配唯一值?
- javascript - 如何为可溢出的 div 中始终可见的 thead 和 tbody 添加边框
- javascript - Flutter Web:FCM 无法注册 Service Worker
- git - 我们什么时候需要在 git 中使用 --track 命令
- java - 将 QueryDSl 与 Spring Boot App 集成时出现空指针异常
- git - 如何隔离git子模块的日志
- android - 同一个TextView中的多个id
- java - 基于单链表的FIFO队列结构