为什么我的Perl脚本退出137?

Bi.*_*Bi. 45 perl exit-code

有没有办法消除perl中的警告(退出代码137)?我在另一个shell脚本中运行Linux上的Perl脚本.此Perl脚本以警告和退出代码137退出.我无法确定退出代码137代表什么.

避免此警告的最佳方法是什么?我在脚本中尝试了"没有警告",并且在我的Perl脚本末尾也有一个退出0.

Igo*_*kon 73

137 = 128 + 9,这意味着其他一些进程发送了一个信号9,即SIGKILL.即另一个脚本杀死你的,这就是它的样子.

  • 它也可能向自己发送信号. (11认同)
  • 在Linux上,检查`dmesg`输出以查看是否是OOM Killer. (4认同)
  • 这是oomkiller进程正在杀死它 - 而不是其他脚本. (3认同)
  • 有用的链接描述了这一点,http://tldp.org/LDP/abs/html/exitcodes.html (3认同)

小智 50

我在启动python脚本时遇到了相同的退出代码137.事实证明,这是OOM的杀手,将SIGKILL发送给python解释器.如果它是相同的原因,您可以在/ var/log/messages中找到oom msgs


小智 8

我从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
Run Code Online (Sandbox Code Playgroud)


Bal*_*sár 5

我怀疑退出警告是由调用 perl 程序的 shell 打印出来的,而不是由 perl 程序本身打印出来的,因此 perl 代码中的“无警告”对您没有帮助。退出代码 137 意味着它被 SIGKILL 信号杀死。