Um script de wrapper como este é uma abordagem padrão. O script executa o programa em segundo plano e, em seguida, faz um loop, verificando o arquivo de log a cada minuto para alguma string. Se a string for encontrada, o programa em segundo plano será eliminado e o script será encerrado.
command="prog -foo -whatever"
log="prog.log"
match="this is the what i want to match"
$command > "$log" 2>&1 &
pid=$!
while sleep 60
do
if fgrep --quiet "$match" "$log"
then
kill $pid
exit 0
fi
done