我对内核开发很感兴趣,正在尝试找到一种终止和杀死进程的方法。我唯一知道的是该进程的 pid 和任务描述符值。
换句话说,如何使用内核中的 pid 或指向其 task_struct 的指针来终止进程?
答案1
您可以参考的代码是 mm/oom_kill.c 中的 oom killer
https://github.com/torvalds/linux/blob/master/mm/oom_kill.c
这是当系统内存不足时,内核会选择杀死某个进程的机制。
Android LMK比较简单,使用send_sig。 https://android.googlesource.com/kernel/arm64/+/android-9.0.0_r0.32/drivers/staging/android/lowmemorykiller.c
或者您可以使用
int kill_pid(struct pid *pid, int sig, int priv)
函数。