如何殺死核心中的行程?

如何殺死核心中的行程?

我對核心開發感興趣,我正在嘗試找到一種方法來終止和終止進程。我唯一知道的是該進程的 pid 和任務描述符值。

換句話說,如何透過使用進程的 pid 或指向內核中的 task_struct 的指標來殺死進程?

答案1

  1. 您可以參考的程式碼是 oom Killer,位於 mm/oom_kill.c

    https://github.com/torvalds/linux/blob/master/mm/oom_kill.c

    這就是當系統記憶體不足時,核心會選擇某些行程來殺死的機制。

  2. Android LMK 相對簡單一些。它正在使用 send_sig。 https://android.googlesource.com/kernel/arm64/+/android-9.0.0_r0.32/drivers/staging/android/lowmemorykiller.c

  3. 或者你可以使用int kill_pid(struct pid *pid, int sig, int priv)函數。

相關內容