【发布时间】:2017-10-06 09:21:23
【问题描述】:
我有以下并行运行的while 循环。 (logProcess 是我在脚本前面定义的函数。)
while read LINE; do
logProcess $LINE &
done <<< "$ELS_LOGS"
wait
我需要找到一种方法来限制正在运行的进程数量。我知道有并行进程正在运行。如何转换循环以使用该命令?
【问题讨论】:
-
可能在循环内部,您可以检查 ps -ef 和 grep log 进程并检查行数 [wc -l] 。如果这超过了您要运行的进程数,您可以休眠一段时间,直到其中一个进程完成,然后再次启动新的 logProcess。这是必需的吗?
-
logProcess $LINE,不是logProcess "$LINE"?请记住,如果您有一行包含*,您将在命令行中获得一个文件名列表。