在adb shell中通过找到的名称杀死pid

时间:2014-08-05 09:39:50

标签: android windows shell adb ps

我正在尝试通过pid杀死进程但尚未成功。 要获得pid,我在adb shell中使用命令:

echo $(ps |grep myword) | cut -d' ' -f2

要杀死pid我使用命令:

kill <PID>

但是我不能加入那两个命令..我尝试过的是:

kill $($(ps |grep debug) | cut -d' ' -f2)

但它有些不对劲。我可以请你帮忙吗?

TL;博士

问题是关于在adb shell中加入两个命令,android console -to kill name by name。

echo $(ps |grep myword) | cut -d' ' -f2
kill <PID>

我忘了说:我正在使用Windows7,因此grep可能无法在控制台中运行。 非常抱歉。

我也试过这个命令:

adb shell "su -c 'echo $(ps | grep process_name) | cut -d' ' -f2 | xargs kill'"

此示例运行良好,但最后一部分xargs失败:

adb shell ^" "su -c 'echo $(ps | grep ror)'|cut -d' ' -f2"

3 个答案:

答案 0 :(得分:4)

该过程可以通过以下方式终止(在Linux系统上)。

  1. 使用 方法,命令(在ADB shell上)应如下所示:
    echo $(ps | grep process_name) | cut -d' ' -f2 | xargs kill

  2. 在ADB shell上 ps | grep process_name | awk '{print $2}' | xargs kill
    在主机上作为
    adb shell ps | grep process_name | awk '{print $2}' | xargs adb shell kill

  3. 您可以使用busybox并执行此操作。 您也可以构建自己的命令(例如pkill),如图所示herekillall已经支持busybox

  4. 选项one应解决您的查询,我更喜欢second选项。

答案 1 :(得分:1)

windows7中命令adb shell的解决方案是:

adb shell ^" "su -c 'ps | echo $(grep process_name) | cut -d " " -f2 |xargs kill '"

答案 2 :(得分:0)

使用单个adb命令:

adb shell "for pid in  \`ps  | grep process_name | sed 's/  */ /g' | \
     cut -d ' '  -f 2 \`; do kill \$pid; done"