为什么我的Perl脚本以137退出?
有没有办法消除perl中的警告(退出代码137)?我正在另一个shell脚本中运行linux上的Perl脚本。此Perl脚本退出时带有警告和退出代码137。我无法准确指出出口代码137代表什么为什么我的Perl脚本以137退出?,perl,exit-code,Perl,Exit Code,有没有办法消除perl中的警告(退出代码137)?我正在另一个shell脚本中运行linux上的Perl脚本。此Perl脚本退出时带有警告和退出代码137。我无法准确指出出口代码137代表什么 避免此警告的最佳方法是什么?我在脚本中尝试了“无警告”,并且在Perl脚本的末尾也有一个出口0。137=128+9,这意味着其他进程向您发送了一个信号9,即SIGKILL。也就是说,另一个脚本杀死了你的脚本,这就是它看起来的样子。我怀疑退出警告是由调用perl程序的shell打印出来的,而不是由perl程
避免此警告的最佳方法是什么?我在脚本中尝试了“无警告”,并且在Perl脚本的末尾也有一个出口0。137=128+9,这意味着其他进程向您发送了一个信号9,即SIGKILL。也就是说,另一个脚本杀死了你的脚本,这就是它看起来的样子。我怀疑退出警告是由调用perl程序的shell打印出来的,而不是由perl程序本身打印出来的,因此perl代码中的“无警告”对你没有帮助。退出代码137表示它被SIGKILL信号终止。我在启动python脚本时遇到了相同的退出代码137。 结果是OOM杀手开始攻击,将SIGKILL发送给python解释器。
如果是相同的原因,您可以在/var/log/messages中找到oom msgs我从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
你的脚本从哪里退出?你真的看到警告了吗?发布相关的代码块可能会有帮助。我不知道如何找出脚本的退出位置。它似乎做得很好(因为我的输出是正确的),但退出137。我使用echo$status来查看退出代码。如果希望人们能够帮助您,您至少需要显示shell脚本中调用perl脚本的部分,并显示输出的“警告”。(只需编辑您的问题并将这些内容添加到其中。)可能的重复不完全是因为独立运行脚本也会吐出137。谢谢。也有可能是它自己发出了信号。杀死它的是oomkiller进程,而不是另一个脚本。在Linux上,检查
dmesg
输出,看看是否是OOM杀手。你能详细说明一下为什么你的答案中有“128”吗?这是一个已知的数字,从那里开始递增吗?oom\u reaper消息也在dmesg
中。