【问题标题】:Python: spawn subprocess with several requirementsPython:产生具有几个要求的子进程
【发布时间】:2013-10-10 23:14:07
【问题描述】:

使用 python 2.6 或 2.7,我需要生成一个子进程:

  • 必须分离
  • 它的输出必须重定向
  • 生成的 python 进程必须打印子进程的 PID,然后退出。

我浏览了各种模块(以及各种 Stackoverflow 帖子),似乎所有模块都与这些要求中的一个或多个相冲突。例如。 os.system() = 没有 pid; subprocess.* = 没有重定向或没有分离。

【问题讨论】:

    标签: python redirect pid spawn detach


    【解决方案1】:

    我假设你的意思是你希望你的脚本在启动子进程后继续运行,对吗?如果是这样,我相信你必须分叉,在子进程中启动子进程并在那里捕获它的输出。

    import os
    import subprocess
    
    cmd = 'ls'
    
    if os.fork() == 0:
            process = subprocess.Popen(cmd, shell=True, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)
            print "subprocess pid: %d" % process.pid
            stdout = process.communicate()
            print stdout
    else:
            print 'parent...'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多