커널에서 프로세스를 어떻게 종료할 수 있나요?

커널에서 프로세스를 어떻게 종료할 수 있나요?

저는 커널 개발에 관심이 있고 프로세스를 종료하고 종료하는 방법을 찾으려고 노력하고 있습니다. 내가 아는 유일한 것은 해당 프로세스의 pid와 작업 설명자 값입니다.

즉, 커널의 task_struct에 대한 pid 또는 포인터를 사용하여 프로세스를 어떻게 종료할 수 있습니까?

답변1

  1. 참조할 수 있는 코드는 mm/oom_kill.c의 oom killer입니다.

    https://github.com/torvalds/linux/blob/master/mm/oom_kill.c

    이는 시스템에 메모리가 부족할 때 커널이 종료할 프로세스를 선택하는 메커니즘입니다.

  2. Android LMK는 비교적 간단합니다. send_sig를 사용하고 있습니다. https://android.googlesource.com/kernel/arm64/+/android-9.0.0_r0.32/drivers/staging/android/lowmemorykiller.c

  3. 또는 기능을 사용할 수 있습니다 int kill_pid(struct pid *pid, int sig, int priv).

관련 정보