我使用脚本在bash中启动大约100个后台进程并等待它们完成使用 -
declare -a pid
for i in {0..99}; do
bash run.sh 1>/dev/null 2>&1 &
pid[$i]=$!
done
for i in {0..99}; do
wait ${ARRAY[$i]}
done
在run.sh中,我正在运行spark-shell。该脚本正在崩溃系统。是因为对后台进程数量有一些限制吗?这些过程是否消耗了大量资源?
答案 0 :(得分:0)
我做了一个小改动,它在bash 4.3.42(1)
上运行良好#! /bin/bash
declare -a pid
for i in {0..99}; do
bash run.sh 1>/dev/null 2>&1 &
pid[$i]=$!
done
for i in {0..99}; do
wait ${pid[i]}
done
我将$ {ARRAY [$ i]}更改为$ {pid [i]},我不确定复制到问题是否是错误,或者是否在原始脚本中。
值得注意的是,你也不需要数组方括号内的$。