adb: Find PID from the adb shell
Solution 1
Not sure if you can get the PID directly however you can try the following
set `ps |grep android.process.acore` echo $2
This has the affect of setting the output of the ps command into variables $1, $2, $3 etc. The PID value is in $2
Solution 2
Android versions starting with 6.0 already include pidof
utility:
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)
rumit patel
Updated on July 15, 2022Comments
-
rumit patel almost 2 years
I am trying to get the PID of the process INSIDE adb shell. So, I am doing adb shell which gets me to the android shell. Now, if I were to get the PID using a regular shell I would use
adb shell ps | grep android.process.acore | sed 's/\s\s*/ /g' | cut -d ' ' -f 2
OR
adb shell ps | grep android.process.acore | awk '{ print $2 }'
I get the PID (a numeric number - 2nd field of the
ps | grep android.process.acore
) output.However, if I run the above commands inside android shell(after doing
adb shell
), I get/system/bin/sh: sed: not found
and/system/bin/sh: awk: not found
errors respectively. Which means, these commands are not available inside adb shell. However, grep works.The output of the
ps | grep android.process.acore
insideadb shell
is:XXX_x21 11826 441 502296 39028 ffffffff 4010ff6c S android.process.acore
I am looking for the number 11826. How can I extract it inside
adb shell
?Also, please help if there is a direct way to get the PID inside the adb shell.
Regards, Rumit