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 '%'

如果您碰巧需要向脚本传递更多参数,只需在上面 % 之后添加它们(在引号内)