在单独的进程中运行python
我正在寻找一个快速的bash脚本或程序,它允许我在一个单独的过程中启动一个python脚本。最好的方法是什么?我知道这非常简单,只是好奇是否有更好的方法来做这件事。你的行话都很混乱。但是在bash中,您可以通过附加在单独的进程中运行python,python,process,Python,Process,我正在寻找一个快速的bash脚本或程序,它允许我在一个单独的过程中启动一个python脚本。最好的方法是什么?我知道这非常简单,只是好奇是否有更好的方法来做这件事。你的行话都很混乱。但是在bash中,您可以通过附加&,在后台运行进程: print foo.py & 最好的方法是使用python!看一看这张照片 下面是上面链接中的一个简单示例: from multiprocessing import Process def f(name): print 'hello', nam
&
,在后台运行进程:
print foo.py &
最好的方法是使用python!看一看这张照片 下面是上面链接中的一个简单示例:
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
bash
并不是真正的线程——它可以很好地处理进程,不过:
python whatever.py &
结尾处的&
仅仅意味着“不要等待子进程结束”-bash将在一个单独的进程中执行命令本身,不管怎样,它只是正常地等待这个单独的进程终止(从远古以来,所有Unix shell都是这样工作的)。只需使用符号(&)以便在后台启动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 &
看来你的意思是“过程”。请更新您的问题。当您说“stdin”时,我想您的意思是“stderr”,它应该是
2>错误。log
(在“2”之后没有符号)。耶,这是我所期望的。谢谢