Подтвердить что ты не робот

Почему мой Perl script выходит с 137?

Есть ли способ устранить предупреждение (код выхода 137) в perl? Я запускаю Perl script на linux в другой оболочке script. Этот Perl script выходит с кодом предупреждения и выхода 137. Я не мог точно определить, что означает код выхода 137.

Каков наилучший способ избежать этого предупреждения? Я пробовал "никаких предупреждений" в script, и у меня есть выход 0 в конце моего Perl script.

4b9b3361

Ответ 1

137 = 128 + 9, что означает, что какой-то другой процесс отправил вам сигнал 9, который является SIGKILL. То есть другой script убивает вас, что он выглядит.

Ответ 2

Я просто столкнулся с тем же кодом выхода 137 при запуске python script. Оказывается, это убийца OOM, отправляющий SIGKILL в интерпретатор python. Если это та же самая причина, вы можете найти oom msgs в/var/log/messages

Ответ 3

Я получил тот же код ошибки 137 из ANT script. Глядя на /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

Ответ 4

Я подозреваю, что предупреждение о выходе распечатывается оболочкой, которая вызвала программу perl, а не самой программой perl, поэтому "никакие предупреждения" в Perl-коде не помогут вам. код выхода 137 означает, что он был убит сигналом SIGKILL.