Como posso matar um processo no kernel?

Como posso matar um processo no kernel?

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

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

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

  3. Ou você pode usar int kill_pid(struct pid *pid, int sig, int priv)a função.

informação relacionada