Bash脚本:当其他进程完成时,终止一个进程

时间:2014-01-10 16:33:59

标签: linux bash

我正在尝试编写一个bash脚本,使用不同的命令行选项在一个接一个地运行一个大约1024次。然而,其中一个进程包括无限循环,我试图在循环的另一次迭代开始之前杀死该进程。

所以这是我到目前为止所尝试的(prog1包含无限循环,我想在papi完成运行时杀死它):

#!/bin/bash
for (( i=0; i<32780; i+=32))
do
    ./prog1 $i &
    pid=$!;
    sleep 5s
    ./papi
    kill -s 2 $pid
done

但是它不会杀死任何prog1实例,当然它会在每次迭代开始时继续创建它们。我做错了什么?

1 个答案:

答案 0 :(得分:0)

它在完成之前杀死了一个进程:

pkill $!

例如:

telnet 192.168.1.1  1>/dev/null 2>&1 &
pkill $!