web-dev-qa-db-fra.com

Pourquoi mon script Perl se termine-t-il avec 137?

Existe-t-il un moyen d'éliminer un avertissement (code de sortie 137) dans Perl? J'exécute un script Perl sur linux dans un autre script Shell. Ce script Perl se termine avec un avertissement et un code de sortie 137. Je n'ai pas pu identifier le code de sortie 137.

Quelle est la meilleure façon d'éviter cet avertissement? J'ai essayé "aucun avertissement" dans le script et j'ai également une sortie 0 à la fin de mon script Perl.

44
Bi.

137 = 128 + 9, ce qui signifie qu'un autre processus vous a envoyé un signal 9, qui est SIGKILL. C'est à dire. l'autre script tue le vôtre, voilà à quoi il ressemble.

73
Igor Krivokon

Je viens de tomber sur le même code de sortie 137 lors du lancement d'un script python. Il s'avère que c'est le tueur OOM qui entre en jeu, envoyant SIGKILL à python interprète. Si c'est la même cause, vous pouvez trouver des msgs oom dans/var/log/messages

50
Wenjun

J'ai obtenu le même code d'erreur 137 à partir d'un script ANT. En regardant/var/log/messages, je comprends qu'il s'agit d'une erreur de mémoire insuffisante.

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
8
Shyam

Je soupçonne que l'avertissement de sortie est imprimé par le shell qui a appelé le programme Perl, pas par le programme Perl lui-même, donc "aucun avertissement" dans le code Perl ne vous aidera pas. le code de sortie 137 signifie qu'il a été tué avec un signal SIGKILL.

4
Balázs Pozsár