如何重定向xvfb-run执行的命令的错误输出
问题原因
xvfb-run 默认会将子进程的标准错误流合并到标准输出流,因此你原本的错误流重定向规则无法生效,脚本的所有输出都会被写入out文件。
解决方案
方案1:使用原生参数关闭重定向
给xvfb-run添加--no-redirect-stderr选项,即可关闭默认的流合并行为,保留你原本的输出分流逻辑:
xvfb-run -d --no-redirect-stderr script.py > out 2> err
方案2:嵌套shell执行(兼容旧版本)
如果你使用的xvfb-run版本不支持上述参数,可以通过子shell包裹执行逻辑,在shell内部完成输出分流:
xvfb-run -d sh -c 'script.py > out 2> err'
效果验证
你可以用如下测试脚本确认分流是否正常:test.py 内容:
import sys print("标准输出内容") print("标准错误内容", file=sys.stderr)
执行后检查out仅包含标准输出内容、err仅包含标准错误内容即为配置正确。
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

