Как завершить процесс в ядре?

Как завершить процесс в ядре?

Я интересуюсь разработкой ядра и пытаюсь найти способ завершить и убить процесс. Единственное, что я знаю, это 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)функцию.

Связанный контент