¿Cómo puedo eliminar un proceso en el kernel?

¿Cómo puedo eliminar un proceso en el kernel?

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

  1. 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.

  2. 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

  3. O puedes usar int kill_pid(struct pid *pid, int sig, int priv)la función.

información relacionada