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

时间:2009-06-24 21:48:30

标签: perl exit-code

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

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

4 个答案:

答案 0 :(得分:72)

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

答案 1 :(得分:48)

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

中找到oom msgs

答案 2 :(得分: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

答案 3 :(得分:4)

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