我正在编写一个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循环?谢谢。
答案 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)
使用
获取pidecho $!
然后
杀死
答案 2 :(得分:0)
你可以从my_app
向生成my_app
这是真实的例子
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