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