【问题标题】:Use of '&' in a python subprocess for background process在后台进程的python子进程中使用'&'
【发布时间】:2020-03-28 20:26:35
【问题描述】:

以下两行有什么区别:

subprocess.Popen(command + '> output.txt', shell=True)
subprocess.Popen(command +' &> output.txt', shell=True)

popen 已经触发命令在后台运行,我应该使用& 吗?即使 python 脚本结束执行,使用& 是否确保命令运行?

请告诉我这两行之间的区别,并建议哪两行更好。 谢谢。

【问题讨论】:

    标签: python shell subprocess background-process popen


    【解决方案1】:

    &> 指定标准错误必须重定向到与标准输出相同的目的地。这意味着命令的输出日志和错误日志也会写入到 output.txt 文件中。

    单独使用 > 只会将标准输出复制到 output.txt 文件中,并且可以使用 command 2> error.txt 写入标准错误

    【讨论】:

    • 谢谢,有帮助!这是否意味着command +' &> output.txt'command +' > output.txt 2>&1' 相同?
    • 您如何测试并告知我们结果?
    • @ArunJose_Intel :请注意,OP 标记了他的问题 shell,我认为 POSIX shell 不支持 &> 重定向。至少我在standard里找不到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    相关资源
    最近更新 更多