Androidシェルの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
、認識されていません。
grep
、egrep
、fgrep
、のいずれもrgrep
Android では使用できません。
Unix
、Linux
、Mac
またはで作業している場合は、コマンドCygwin
の出力をパイプして、必要な結果を得ることができます。adb 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
かなり厄介ですが、機能します:
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
または1行として:
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