【问题标题】:start python script as background process from within a python script [duplicate]从python脚本中启动python脚本作为后台进程[重复]
【发布时间】:2011-04-05 11:20:01
【问题描述】:

我的 python 脚本需要启动一个后台进程,然后继续处理完成而不等待返回。

后台脚本会处理一段时间,不会产生任何屏幕输出。

不需要进程间数据。

我尝试过使用各种方法子进程、多进程,但显然缺少一些东西。

谁有一个简单的例子?

TIA

【问题讨论】:

    标签: python


    【解决方案1】:

    这个怎么样:

    import subprocess
    from multiprocessing import Process
    
    Process(target=subprocess.call, args=(('ls', '-l', ), )).start()
    

    它不是那么优雅,但它满足您的所有要求。

    【讨论】:

      【解决方案2】:

      简单:

      subprocess.Popen(["background-process", "arguments"])
      

      如果你想稍后检查后台进程是否完成了它的工作,保留对 Popen 对象的引用并使用它的poll() 方法。

      【讨论】:

        【解决方案3】:

        在Calling an external command in Python(根据@lecodesportif)有一个很好的关于如何做到这一点的各个部分/部分的文章。

        快速回答的要点是:

        retcode = subprocess.call(["ls", "-l"])
        

        【讨论】:

        • 它不符合“无需等待”的要求。
        • 啊 - 我的错,我在阅读中错过了这一点。你说得很对。 Stefano 的回答应该可以满足您的需求。
        • 类似:retcode = subprocess.call(["ls -l &"], shell=True)。这对我有用。
        猜你喜欢
        • 2019-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多