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