Android - 如何使用 ppid = 1 终止进程

Android - How kill process with ppid = 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 的进程?

这不是个好主意,但你可以尝试调用 Runtime.getRuntime().exec("kill -9 " + PID);。 或者尝试调用 killBackgroundProcesses 而不是 killProcesskillProcess 不允许您终止 UID 与您的应用程序 UID 不同的进程,而 killBackgroundProcesses 可以为您做到这一点。

请确保您的应用拥有 android.permission.ACCESS_SUPERUSERandroid.permission.KILL_BACKGROUND_PROCESSESandroid.permission.GET_TASKS.

等权限

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

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