
我對核心開發感興趣,我正在嘗試找到一種方法來終止和終止進程。我唯一知道的是該進程的 pid 和任務描述符值。
換句話說,如何透過使用進程的 pid 或指向內核中的 task_struct 的指標來殺死進程?
答案1
您可以參考的程式碼是 oom Killer,位於 mm/oom_kill.c
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)
函數。