0

谁能告诉我如何从 Android shell 中 PS 命令的输出中获取 PID。例如从输出:

u0_a51    20240 38    132944 22300 ffffffff 40037ebc S com.example.poc_service

pid 值20240是要得到的。我试过了

ps -ef | grep com.example.poc_service

但无济于事。也不pgrep被认可。

4

3 回答 3

3

如果您在 Android 中有 shell 访问权限,您还可以使用pidof

# pidof com.example.poc_service
20240 

但是,要小心,因为可能有多个进程匹配......

于 2015-01-06T01:05:49.573 回答
0

它非常讨厌,但它有效:

for pid in `ls /proc`; do 
   cmd=`cat $pid/cmdline 2> /dev/null`;

   if [ "X$cmd" == "Xcom.example.poc_service" ]; then
       echo $pid;
   fi 
done

或一行:

for pid in `ls /proc`; do cmd=`cat $pid/cmdline 2> /dev/null`; if [ "X$cmd" == "X/system/bin/mm-qcamera-daemon" ]; then echo $pid; fi done
于 2014-03-09T09:30:48.900 回答
0

grep, egrep, fgrep,rgrep在 Android 中均不可用。

如果您正在处理Unix、或Linux,则可以通过管道输出命令以获得所需的结果。MacCygwinadb shell

$ adb shell ps |grep settings
system    23846 71    111996 22676 ffffffff 00000000 S com.android.settings
$ adb shell ps |grep settings |awk '{print $2}'
23846
于 2015-01-06T01:49:41.067 回答