2017-02-08 130 views
1

我試圖找到一些方法從shell中殺死Android中不必要的服務/進程。 問題是,在殺死進程後,它會在幾秒鐘後重新啓動!在Android中從shell中殺死進程

例如我想殺batterywarning,但它保留再次啓動:

[email protected]_kk:/ # ps | grep batteryw 
shell  17986 1  1044 364 c00601dc b6e9f094 S /system/bin/batterywarning 
1|[email protected]_kk:/ # ps | grep batteryw 
shell  17781 1  1044 364 c00601dc b6ee6094 S /system/bin/batterywarning 
[email protected]_kk:/ # busybox killall batterywarning 
[email protected]_kk:/ # ps | grep batteryw 
1|[email protected]_kk:/ # ps | grep batteryw 
shell  17986 1  1044 364 c00601dc b6e9f094 S /system/bin/batterywarning 

我找到了幾種方法來殺死服務/進程在下面的鏈接,但該過程重新開始。

Android ADB stop application command like "force-stop" for non rooted device

這是否只能在init.rc中完成?

感謝,

回答

1

該服務可能開始爲置頂 - 這將是由OS一些預定義的超時後自動重啓。

您可以從設備拉動logcat的和grepping它的服務的名稱,檢查你試圖殺死:

$ adb logcat -d > logcat.txt 
$ grep -C 5 -i batterywarning logcat.txt 

如果你看到沿東西線scheduling restart of crashed service in X seconds,那麼你肯定知道該服務正在由OS重新啓動。

如果確實如此,我懷疑你可以在一個沒有根的設備上完全殺死它(我不知道如何在一個根目錄的設備上實現這個功能)。