在一个单独的进程中运行python

时间:2010-06-02 01:49:36

标签: python process

我正在寻找一个快速的bash脚本或程序,它允许我在一个单独的进程中启动python脚本。最好的方法是什么?我知道这非常简单,只是好奇是否有一种首选方式。

4 个答案:

答案 0 :(得分:18)

只需使用&符号(&)即可在后台启动Python进程。 Python已经在BASH脚本的单独进程中执行,所以说“在一个单独的线程中”运行它并没有多大意义 - 我假设你只是希望它在后台运行:

#! /bin/bash
python path/to/python/program.py &

请注意,上述内容可能会导致文本被打印到控制台。您可以通过使用重定向将stdout和stderr重定向到文件来解决此问题。例如:

#! /bin/bash
python path/to/python/program.py > results.txt 2> errors.log &

答案 1 :(得分:4)

执行此操作的最佳方法是在python中执行此操作!看看multiprocess libraries

以下是上述链接中的一个简单示例:

from multiprocessing import Process

def f(name):
    print 'hello', name

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

答案 2 :(得分:3)

bash并不真正做线程 - 它确实做进程就好了:

python whatever.py &

最后的&只是意味着“不要等待子进程结束” - bash无论如何都会在一个单独的进程中执行命令,通常只是等待它单独的进程终止(所有Unix shell自古以来都以这种方式工作)。

答案 3 :(得分:2)

你的行话很困惑。但是在bash中,您可以通过附加&来运行背景中的流程:

print foo.py &