2013-08-30 35 views
7

我有一個python腳本,它返回-9的退出狀態。突然退出狀態爲-9

我試圖找到與atexit模塊的問題的根源,但它不會被調用。

任何提示可以幫助我找到腳本終止的原因和位置?

的問題是可重複的,操作系統:Linux 3.7.10

回答

16

劇本是由操作系統殺害。負的返回值是用於殺死進程的信號編號。

該腳本需要太多內存。我在系統日誌中發現了這個:

Out of memory: Kill process 26184 (python) score 439 or sacrifice child 
Killed process 26184 (python) total-vm:628772kB, anon-rss:447660kB, file-rss:0kB 
+0

如果你可以分享泄漏內存的代碼的確切部分,它會讓答案更好。 –

+1

我很高興知道操作系統因內存不足而殺死了進程。爲什麼腳本需要大量的記憶是另一個問題。 – guettli

+1

請注意,負退出狀態特定於Python的[subprocess module](https://hg.python.org/cpython/file/a889c5524520/Lib/subprocess.py#l1034)。 Shell會[返回](http://tldp.org/LDP/abs/html/exitcodes.html)'128 + signum'。 –