
Estou interessado no desenvolvimento do kernel e estou tentando encontrar uma maneira de encerrar e encerrar um processo. A única coisa que sei é o valor do pid e do descritor de tarefa desse processo.
Em outras palavras, como posso encerrar um processo usando seu pid ou ponteiro para task_struct no kernel?
Responder1
O código que você pode referenciar é oom killer em mm/oom_kill.c
https://github.com/torvalds/linux/blob/master/mm/oom_kill.c
Este é o mecanismo quando o sistema está sem memória, o kernel escolherá algum processo para matar.
O Android LMK é relativamente mais simples. Está usando send_sig. https://android.googlesource.com/kernel/arm64/+/android-9.0.0_r0.32/drivers/staging/android/lowmemorykiller.c
Ou você pode usar
int kill_pid(struct pid *pid, int sig, int priv)
a função.