커널 종료 프로세스 목록은 어디에서 볼 수 있습니까?


33

커널이 종료 한 프로세스를 확인할 수있는 방법이 있습니까? 때때로 나는 서버에 로그온하여 밤새도록 실행해야하는 것이 8 시간 안에 멈췄다는 것을 알았다.

답변:


30

시스템에 메모리가 부족하여 커널이 프로세스를 종료하면 커널 로그 메시지가 나타납니다. 체크인 /var/log/kern.log(데비안 / 우분투에서는 다른 배포판에서 커널 로그를 다른 파일로 보낼 수 있지만 일반적으로 /var/logLinux에서).

OOM 킬러 (메모리 부족 킬러)가 트리거 된 경우 가상 메모리가 충분하지 않다는 의미입니다. 더 많은 스왑 (또는 더 많은 RAM)을 추가하십시오.

일부 프로세스 충돌은 커널 로그에도 기록됩니다 (예 : 분할 오류).

프로세스가 cron에서 시작된 경우 오류 메시지가 포함 된 메일이 있어야합니다. 프로세스가 터미널의 쉘에서 시작된 경우 해당 터미널의 오류를 확인하십시오. screen아침에 터미널을 다시 보려면 프로세스를 실행하십시오 . OOM-killer가 트리거 된 경우 도움이되지 않습니다. cron 또는 화면 프로세스도 종료했을 수 있기 때문입니다. 그러나 당신이 OOM-killer를 만났다면 그것은 해결해야 할 문제입니다.


에서 스레드 킬 메시지는 무엇입니까 /var/log/kern.log?
Bee

12

프로세스 회계가 여기에 도움이 될 수 있습니다.

간단히 :

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

최소한의 테스트 만.


-1

sudo 서비스 --status-all

이 명령은 현재 실행중인 서비스와 시작 또는 중지되지 않은 서비스를 알려줍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.