我想在bash shell中并行运行多个python脚本(比如说script1.py到script10.py)。有人可以建议使用xargs命令同时运行所有程序的最佳方法是什么吗?或还有其他建议吗?预先感谢
答案 0 :(得分:1)
使用bash:
for i in {1..10}; do
python script${i}.py &
done
答案 1 :(得分:0)
您需要考虑一些注意事项。 (没有考虑其他答案)
脚本是否可以独立运行?如果是这种情况,这会更容易。如果没有,那么您将需要一个脚本管道来管理诸如Python的Luigi之类的依赖项。
脚本可能需要不同的python解释器版本。 (2.7与3.7等。)
如果您决定继续使用Bash,则使用nohup可以确保在调用过程结束时该过程不会退出。
这不是您想的那样容易的问题。
答案 2 :(得分:0)
对于这种用例,我是xargs -P<number>
的支持者,特别是因为它会等待所有正在运行的子项完成。
假设您有几个脚本,但仍然最多并行4个,您可以:
ls -1 ./script*.py | xargs -I% -P4 sh -c '%'
如果您碰巧需要向脚本传递更多参数,则只需在%
上方(引号内)添加它们