如何停止调用无限循环的运行脚本

时间:2015-01-23 09:54:40

标签: bash performance-testing

我正在编写一个bash脚本来启动一个不确定的程序。程序的运行时间未知。该脚本还将启动一个while循环,使用linux命令或perf以1秒的方式记录某些内容。

./my_app &
$i=1    
while true;
do
  perf stat -a -A -e writeback:writeback_dirty_page sleep $i >> out
done

如何在my_app完成时停止while循环?谢谢。

3 个答案:

答案 0 :(得分:3)

使while循环以现有app的进程ID为条件:

./my_app &
app_pid=$!
i=1
while ps -p $app_pid >/dev/null 2>&1
do 
  perf stat -a -A -e writeback:writeback_dirty_page sleep $i >> out
done

答案 1 :(得分:0)

使用

获取pid

echo $!

然后

杀死

答案 2 :(得分:0)

你可以从my_app向生成my_app

的进程发送kill信号

这是真实的例子

test.sh

#!/bin/bash

./my_app.sh $$ &

while [ 1 ]
do
    echo running....
    sleep 2
done

my_app.sh

#!/bin/bash

sleep 10
kill -9 $1