Estoy tratando de obtener el PID del proceso DENTRO de adb shell. Entonces, estoy haciendo adb shell que me lleva al shell de Android. Ahora, si tuviera que obtener el PID usando un shell normal, usaría
adb shell ps | grep android.process.acore | sed 's/\s\s*/ /g' | cut -d ' ' -f 2O
adb shell ps | grep android.process.acore | awk '{ print $2 }' Obtengo el PID (un número numérico - segundo campo de la salida ps | grep android.process.acore ).
Sin embargo, si ejecuto los comandos anteriores dentro del shell de Android (después de hacer adb shell ), obtengo /system/bin/sh: sed: not found y /system/bin/sh: awk: not found errores respectivamente. Lo que significa que estos comandos no están disponibles dentro de adb shell. Sin embargo, grep funciona.
La salida del ps | grep android.process.acore dentro adb shell es:
XXX_x21 11826 441 502296 39028 ffffffff 4010ff6c S android.process.acore Estoy buscando el número 11826. ¿Cómo puedo extraerlo dentro adb shell ?
Además, ayude si hay una forma directa de obtener el PID dentro del shell adb.
Saludos, Rumit
Las versiones de Android que comienzan con 6.0 ya incluyen la utilidad pidof :
usage: pidof [-s] [-o omitpid[,omitpid...]] [NAME]... Print the PIDs of all processes with the given names. -s single shot, only return one pid. -o omit PID(s)No estoy seguro si puede obtener el PID directamente, sin embargo, puede intentar lo siguiente
establecer `ps | grep android.process.acore` eco $2
Esto tiene el efecto de configurar la salida del comando ps en las variables $1, $2, $3, etc. El valor PID está en $2
Probé este y parece funcionar:
adb shell "set "ps | grep android.process.media"; kill -9 $2"