2013-08-30 3 views
7

У меня есть скрипт python, который возвращает статус выхода -9.внезапный выход со статусом -9

Я попытался получить корень проблемы с модулем atexit, но он не вызван.

Любые подсказки, которые помогут мне найти причину и где заканчивается мой сценарий?

Проблема воспроизводит, операционная система: Linux 3.7.10

ответ

16

Сценарий был убит операционной системой. Отрицательные возвращаемые значения - это номер сигнала, который использовался для уничтожения процесса.

Сценарий требует слишком много памяти. Я нашел это в syslog:

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 (https://hg.python.org/cpython/file/a889c5524520/Lib/subprocess.py#l1034). Shell будет [возвращать] (http://tldp.org/LDP/abs/html/exitcodes.html) '128 + signum'. –

Смежные вопросы