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
而不是 killProcess
。 killProcess
不允许您终止 UID 与您的应用程序 UID 不同的进程,而 killBackgroundProcesses
可以为您做到这一点。
请确保您的应用拥有 android.permission.ACCESS_SUPERUSER
、android.permission.KILL_BACKGROUND_PROCESSES
和 android.permission.GET_TASKS
.
等权限
PID=1
是进程管理器。它直接在内核之后执行,如果你杀死它,所有进程都会死亡。不建议这样做,但如果您决定可以试试这个:
Runtime.getRuntime().exec("kill -9 " + PID);
我在一个 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
而不是 killProcess
。 killProcess
不允许您终止 UID 与您的应用程序 UID 不同的进程,而 killBackgroundProcesses
可以为您做到这一点。
请确保您的应用拥有 android.permission.ACCESS_SUPERUSER
、android.permission.KILL_BACKGROUND_PROCESSES
和 android.permission.GET_TASKS
.
PID=1
是进程管理器。它直接在内核之后执行,如果你杀死它,所有进程都会死亡。不建议这样做,但如果您决定可以试试这个:
Runtime.getRuntime().exec("kill -9 " + PID);