until grep -qm 1 '\"We Are Finished\"' LOGFILE; do top -d 5 -n 12 -b -p PID >> LOGFILE; done
Se você deseja sair do registro em um processo quando o pid não está mais sendo executado, o script abaixo deve funcionar? (isso evita que dois processos gravem no mesmo arquivo?)
São necessários três parâmetros: o PID, a localização do LOGFILE e o TIME entre as entradas do registro.
#!/bin/bash
if [ $# -lt 3 ]
then
echo "Usage logpid (PID) (LOGFILE) (Time between in sec)"
exit 1;
fi
while :
do
if ps -p $1 > /dev/null ; then
top -n 1 -b -p $1 >> $2;
else
echo "Exited No pid";
break;
fi
sleep $3;
done