Сценарий Bash для дампа несколько процессов на устройствах на базе Android

Я создал три сценария удара для дампа нескольких процессов, который работает в устройстве на базе Android. Первый сценарий удара:

#!/bin/bash

echo "adb forward tcp:8888 tcp:8888"
adb forward tcp:8888 tcp:8888

exec $SHELL 

Второй сценарий удара:

#!/bin/bash

echo "acquire the process with mem tool"
adb shell "
/dev/examiner/mem 797 | /dev/examiner/nc -l -p 8888
"

exec $SHELL

Третий сценарий:

#!/bin/bash

echo "dump the selected process"
nc 127.0.0.1 8888 > ~/work_folder/bin/797_surface_flinger.bin

exec $SHELL

Например, у меня есть 3 рабочих процесса: PID 797, PID 1025 и PID 2020, который я хочу вывести. Там какая-либо идея состоит в том, чтобы улучшить второй и третий сценарий без вручную изменения выбранное число PID для дампа других выбранных процессов?

0
задан 6 July 2015 в 19:36

1 ответ

Можно заставить каждый сценарий принять, что 2 параметра, порт используют и изодромное с предварением для использования. Тогда выполните их с отличающимися портами и pids. Например, если первый сценарий называют script1 тогда, можно работать

script1 8888 797
script1 8887 1025
script1 8886 2020

, Вот являются сценарии тем использованием 2 параметра.

#!/bin/bash
port=${1?} pid=${2?}
echo "adb forward tcp:$port tcp:$port"
adb forward tcp:$port tcp:$port


#!/bin/bash
port=${1?} pid=${2?}
echo "acquire the process with mem tool"
adb shell "
/dev/examiner/mem $pid | /dev/examiner/nc -l -p $port
"


#!/bin/bash
port=${1?} pid=${2?}
echo "dump the selected process"
nc 127.0.0.1 $port > ~/work_folder/bin/${pid}_surface_flinger.bin

я не знаю, почему Вы имеете exec $SHELL в конце каждого сценария. Вы уверены, что Вам нужен он?

0
ответ дан 4 October 2019 в 01:16

Другие вопросы по тегам:

Похожие вопросы: