在单独的进程中运行Python
我在找一个简单的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 &