2009-06-24 5 views
31

perl에서 경고 (종료 코드 137)를 제거 할 수있는 방법이 있습니까? 나는 다른 쉘 스크립트 내의 리눅스에서 Perl 스크립트를 실행 중이다. 이 Perl 스크립트는 경고 및 종료 코드 137과 함께 종료됩니다. 종료 코드 137의 의미를 정확히 알 수 없습니다.Perl 스크립트가 137로 종료되는 이유는 무엇입니까?

이 경고를 피하는 가장 좋은 방법은 무엇입니까? 나는 "경고 없음"을 스크립트에서 시도했고 Perl 스크립트의 끝 부분에도 출구 0을 가지고 있습니다.

+1

스크립트 종료 위치는 어디입니까? 실제로 경고가 표시됩니까? –

+2

관련 코드를 게시하는 것이 도움이 될 수 있습니다. – Telemachus

+0

스크립트가 종료되는 위치를 파악하는 방법을 모르겠습니다. 그것은 정말 잘하는 것 같아요 (내 결과물은 맞습니다.)하지만 137 번으로 끝납니다. 나는 종료 코드를보기 위해 echo $ status를합니다. –

답변

57

137 = 128 + 9 이는 다른 프로세스가 신호 9를 보낸 것을 의미합니다. 이는 신호음입니다. 나는. 다른 스크립트가 당신을 죽이려합니다.

+0

스크립트를 독립적으로 실행하면 137이 나오기 때문에 그렇지 않습니다. 고마워요. –

+11

신호 자체를 보냈을 가능성도 있습니다. –

+2

다른 스크립트가 아니라 그것을 죽이는 것은 oomkiller 프로세스입니다. – Christy

4

perl 프로그램 자체가 아니라 perl 프로그램을 호출 한 쉘이 종료 경고를 출력한다고 생각합니다. 따라서 perl 코드의 "경고 없음"이 도움이되지 않습니다. 종료 코드 137은 SIGKILL 신호로 사망했음을 의미합니다.

40

파이썬 스크립트를 시작할 때 방금 동일한 종료 코드 137을 실행했습니다. 파이썬 인터프리터에 SIGKILL을 보내는 OOM 킬러가 밝혀졌습니다. 같은 원인 인 경우/var/log/messages에서 oom msg를 찾을 수 있습니다.

+3

와우, 당신의 답은 아마도 나에게 무슨 일이 일어나고 있는지를 알아 내려고 노력했을 것입니다. 감사합니다! –

6

ANT 스크립트에서 137과 동일한 오류 코드가 발생했습니다./var/log/messages를 보면 메모리 부족 오류라는 것을 알았습니다.

Jun 21 07:33:30 myhost kernel: Out of memory: Kill process 52959 (java) score 164 or sacrifice child 
Jun 21 07:33:30 myhost kernel: Killed process 52959 (java) total-vm:709496kB, anon-rss:397016kB, file-rss:0kB 
관련 문제