web-dev-qa-db-ja.com

Perlスクリプトが137で終了するのはなぜですか?

Perlで警告(終了コード137)を排除する方法はありますか? Linuxで別のシェルスクリプト内でPerlスクリプトを実行しています。このPerlスクリプトは警告と終了コード137で終了します。終了コード137の意味を特定できませんでした。

この警告を回避する最良の方法は何ですか?スクリプトで「警告なし」を試みましたが、Perlスクリプトの最後にもexit 0があります。

44
Bi.

137 = 128 + 9は、他のプロセスがシグナル9(SIGKILL)を送信したことを意味します。つまり他のスクリプトはあなたを殺します、それはそれがどのように見えるかです。

73
Igor Krivokon

pythonスクリプトを起動したときに、同じ終了コード137に遭遇しました。 OOMのキラーであることが判明し、SIGKILLをpythonインタープリターに送信します。同じ原因であれば、/ var/log/messagesにoom msgsがあります。

50
Wenjun

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

終了警告は、Perlプログラム自体ではなく、Perlプログラムを呼び出したシェルによって出力されるため、Perlコードの「警告なし」は役に立ちません。終了コード137は、SIGKILLシグナルで強制終了されたことを意味します。

4
Balázs Pozsár