답변:
시스템에 메모리가 부족하여 커널이 프로세스를 종료하면 커널 로그 메시지가 나타납니다. 체크인 /var/log/kern.log
(데비안 / 우분투에서는 다른 배포판에서 커널 로그를 다른 파일로 보낼 수 있지만 일반적으로 /var/log
Linux에서).
OOM 킬러 (메모리 부족 킬러)가 트리거 된 경우 가상 메모리가 충분하지 않다는 의미입니다. 더 많은 스왑 (또는 더 많은 RAM)을 추가하십시오.
일부 프로세스 충돌은 커널 로그에도 기록됩니다 (예 : 분할 오류).
프로세스가 cron에서 시작된 경우 오류 메시지가 포함 된 메일이 있어야합니다. 프로세스가 터미널의 쉘에서 시작된 경우 해당 터미널의 오류를 확인하십시오. screen
아침에 터미널을 다시 보려면 프로세스를 실행하십시오 . OOM-killer가 트리거 된 경우 도움이되지 않습니다. cron 또는 화면 프로세스도 종료했을 수 있기 때문입니다. 그러나 당신이 OOM-killer를 만났다면 그것은 해결해야 할 문제입니다.
프로세스 회계가 여기에 도움이 될 수 있습니다.
간단히 :
apt-get install acct
그런 다음 다음과 같은 명령을 시도하십시오.
lastcomm
sa
또는 우분투에서 :
lastcomm -f /var/log/account/pacct
sa /var/log/account/pacct
보다:
최신 정보
이상하게도 pacct
파일에는 종료 상태에 대한 정보가 있지만 인쇄 하지도 lastcomm
않습니다 sa
.
내가 볼 수있는 한, 정보에 액세스하려면 자신의 C 프로그램을 작성해야합니다.
업데이트 2
종료 코드를 인쇄하는 버전이 있습니다.
마지막 두 필드는 신호에 대해서는 "S"이고 종료에 대해서는 "E"이며 그 뒤에 신호 번호 또는 종료 상태가 있습니다.
따라서 귀하의 경우 SIGTERM을 의미하는 "S 15"를 찾고있을 것입니다.
sleep X mikel stdin 0.00 secs Fri Mar 25 20:15 S 15
"E 0"과 비교하여 오류없이 프로세스가 종료되었음을 의미합니다.
true mikel stdin 0.00 secs Fri Mar 25 20:16 E 0
최소한의 테스트 만.
sudo 서비스 --status-all
이 명령은 현재 실행중인 서비스와 시작 또는 중지되지 않은 서비스를 알려줍니다.
/var/log/kern.log
?