2013-08-30 10 views
7

Mam skrypt Pythona, który zwraca kod zakończenia -9.nagłe wyjście ze statusem -9

Próbowałem uzyskać przyczynę problemu z modułem atexit, ale nie został wywołany.

Jakieś wskazówki, które pomogą mi znaleźć przyczynę i miejsce zakończenia mojego skryptu?

Problemem jest powtarzalna, system operacyjny: Linux 3.7.10

Odpowiedz

16

Skrypt został zabity przez system operacyjny. Wartości ujemnego zwrotu to numer sygnału, który został użyty do zabicia procesu.

Skrypt wymagał zbyt dużo pamięci. Znalazłem to w 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

Jeśli mógłbyś udostępnić dokładną część kodu, w którym wyciekła pamięć, poprawiłaby to odpowiedź. –

+1

Cieszę się, że system operacyjny zabił proces, ponieważ pamięć była niska. Dlaczego skrypt potrzebował dużo pamięci to inne pytanie. – guettli

+1

Należy zauważyć, że ujemny status wyjścia jest specyficzny dla [modułu podprocesowego Pythona] (https://hg.python.org/cpython/file/a889c5524520/Lib/subprocess.py#l1034). Shell powróci (http://tldp.org/LDP/abs/html/exitcodes.html) '128 + signum'. –