
Estoy interesado en el desarrollo del kernel y estoy tratando de encontrar una manera de terminar y eliminar un proceso. Lo único que sé es el valor del descriptor de tarea y pid de ese proceso.
En otras palabras, ¿cómo puedo eliminar un proceso usando su pid o un puntero a su task_struct en el kernel?
Respuesta1
El código al que podría hacer referencia es oom killer en mm/oom_kill.c
https://github.com/torvalds/linux/blob/master/mm/oom_kill.c
Este es el mecanismo cuando el sistema se queda sin memoria, el kernel elegirá algún proceso para eliminar.
Android LMK es relativamente más simple. Está usando send_sig. https://android.googlesource.com/kernel/arm64/+/android-9.0.0_r0.32/drivers/staging/android/lowmemorykiller.c
O puedes usar
int kill_pid(struct pid *pid, int sig, int priv)
la función.