Linux OOM Killer에 의해 종료된 특정 Python 프로세스 찾기

Linux OOM Killer에 의해 종료된 특정 Python 프로세스 찾기

Linux OOM 킬러에 의해 어떤 특정 Python 프로세스나 실행 파일이 종료되었는지 알아내려고 합니다.

/var/log/messages에 다음이 표시됩니다.

Aug 18 03:19:11 169 kernel: [ 7747]     0  7748  3226957  2875051    5692        0             0 python

(단지 name="python"이라고만 나와 있습니다.)

이:

Aug 18 03:19:11 169 kernel: Killed process 7748 (python) total-vm:12907828kB, anon-rss:11500204kB, file-rss:0kB

(다시 한 번 말씀드리지만 프로세스가 "파이썬"이라고 되어 있습니다.)

이상적으로는 프로세스의 로그 파일 어딘가에 PID가 포함되어 있어야 합니다. 그러나 로그가 래핑되었다고 가정하면(또는 프로세스가 어디에도 PID를 기록하지 않는다고 가정하면).

Linux는 프로세스에서 실행되는 전체 명령을 찾는 방법을 제공합니까? 프로세스 테이블에 전체 이름을 표시하도록 Linux의 OOM Killer를 구성할 수 있다면 좋을 것입니다. 예를 들면 다음과 같습니다.

/usr/bin/python /usr/lib/python2.7/site-packages/foo.pyc

아니면 OOM 오류가 발생할 때 Linux에 일부 프로세스 세부 정보가 어딘가에 저장되어 있습니까? /proc에서 X로 프로세스를 복사하고 있습니까? (미혹)

노트:

이 질문은 다음 질문과 매우 유사합니다.https://stackoverflow.com/questions/624857/finding-which-process-was-killed-by-linux-oom-killer

그러나 그것은 내가 알아내려는 것을 성취하지 못합니다.

답변1

Linux는 OOM Killer가 프로세스를 종료하려고 하거나 이미 프로세스를 종료한 경우 이 정보 쿼리를 지원하지 않습니다.

원하는 경우 시스템을 지속적으로 모니터링하고 타임스탬프와 PID는 물론 전체 명령줄을 사용하여 각 프로세스를 기록할 수 있습니다. 바라보다https://stackoverflow.com/a/8255487/334451구현 예.

나중에 어떤 프로세스가 종료될지 미리 알 수 없기 때문에 모든 프로세스에 대한 정보를 저장하고 OOM Killer 종료 이외의 이유로 프로세스가 중지될 때까지 해당 정보를 유지해야 합니다.

관련 정보