在单独的进程中运行Python

11 投票
4 回答
16769 浏览
提问于 2025-04-15 23:26

我在找一个简单的bash脚本或者程序,想要在一个单独的进程中启动一个python脚本。请问有什么好的方法吗?我知道这其实很简单,只是想知道有没有更好的做法。

4 个回答

4

bash 实际上并不支持线程,但它可以很好地处理 进程

python whatever.py &

在命令的末尾加上 & 的意思是“不要等这个子进程结束”——其实 bash 会在一个单独的进程中执行这个命令,只是通常情况下它会等这个单独的进程结束(所有的 Unix Shell 从很久以前就都是这样工作的)。

7

最好的办法就是用Python来实现这个!你可以看看这个多进程库

这里有一个来自上面链接的简单例子:

from multiprocessing import Process

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

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

只需要使用“&”符号,就可以让Python程序在后台运行。其实,Python本身就是在一个和BASH脚本分开的进程中执行的,所以说要在“一个单独的线程”中运行其实没什么意义——我想你只是想让它在后台运行。

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

需要注意的是,上面的做法可能会导致一些文本输出到控制台。如果你想避免这种情况,可以通过重定向的方式,把标准输出和错误输出都导入到一个文件中。例如:

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

撰写回答