Android - 如何使用ppid = 1杀死进程

时间:2017-01-25 14:30:55

标签: android linux bash pppd

我在一个通过卫星调制解调器进行通信的android项目。

您需要运行调制解调器的pppd命令才能通过android进行连接。

我通过bash执行了这个命令。

HTTP POST

在某些时刻,Android会使用PPID = 1

创建此过程

当发生这种情况时,我无法通过执行以下命令来终止进程

   process = Runtime.getRuntime().exec(new String[]{"su", "root", "-c", "/data/local/android_connect.sh", "&> /mnt/sdcard/Download/log.txt"});

是否可以通过android杀死PPID = 1的进程?

2 个答案:

答案 0 :(得分:3)

这不是一个好主意,但你可以尝试打电话 Runtime.getRuntime().exec("kill -9 " + PID);。 或者尝试拨打killBackgroundProcesses而不是killProcesskillProcess不允许您杀死UID与您的应用UID不同的进程,而killBackgroundProcesses可以为您执行此操作。

请确保您的应用具有android.permission.ACCESS_SUPERUSERandroid.permission.KILL_BACKGROUND_PROCESSESandroid.permission.GET_TASKS等权限。

答案 1 :(得分:1)

PID=1是流程管理员。它直接在内核之后执行,如果你杀了它,所有进程都会死掉。不建议如此,但如果您决定可以试试这个:

Runtime.getRuntime().exec("kill -9 " + PID);