【问题标题】:How to join multiple processes in shell?如何在shell中加入多个进程?
【发布时间】:2011-02-26 12:36:22
【问题描述】:

所以我制作了一个小的 c++ 二进制文件来连接以在服务器上执行命令以对其进行压力测试,因此我开始编写以下 shell 脚本:

#!/bin/bash

for ((  i = 0 ;  i <= 15;  i++  ))
do
   ./mycppbinary test 1 &
done

现在,我也碰巧想计算所有进程执行所需的时间。我想我必须对每个进程执行时间命令?

是否可以像线程一样加入这些进程?

【问题讨论】:

    标签: linux shell scripting process


    【解决方案1】:

    你不加入他们,你wait他们。至少在 bash 中,可能还有其他具有作业控制的 shell。

    【讨论】:

      【解决方案2】:

      您可以使用 bash fg 命令将最后一个后台进程带回前台。在另一个循环中执行以捕获所有内容,尽管有些可能在此之前完成,导致您收到关于没有此类过程的错误。您没有加入进程,它们不是线程,它们每个都有自己的 pid 和唯一的内存空间。

      【讨论】:

        【解决方案3】:

        1st,使脚本的最后一个与其所有的孩子一样

        您提出的脚本将在进程完成之前终止,因为您是在后台启动它们。如果您不希望这种情况发生,您可以根据需要发送尽可能多的waits(如 Keith 建议的那样)。

        第二次,给脚本计时

        然后,您可以为您的脚本计时,这将按照您的要求为您提供总执行时间。

        【讨论】:

          【解决方案4】:

          您可以为您的 shell 脚本计时,这将为您提供总执行时间。

          【讨论】:

            猜你喜欢
            • 2017-09-19
            • 1970-01-01
            • 2018-05-23
            • 1970-01-01
            • 1970-01-01
            • 2020-01-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多