1

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

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

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

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

在某些时候,android 会使用 PPID = 1 创建这个进程

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

android.os.Process.killProcess(pidProcess);
        if (process != null)
            process.destroy();

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

4

2 回答 2

3

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

并且请确保您的应用具有和android.permission.ACCESS_SUPERUSER等权限。android.permission.KILL_BACKGROUND_PROCESSESandroid.permission.GET_TASKS

于 2017-01-25T15:10:33.847 回答
1

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

Runtime.getRuntime().exec("kill -9 " + PID);
于 2017-01-25T15:21:52.370 回答