2013-08-30 40 views
7

Tôi có một tập lệnh python trả về trạng thái thoát của -9.thoát đột ngột với trạng thái của -9

Tôi đã cố gắng lấy gốc của vấn đề với mô-đun ngoại tuyến, nhưng nó không được gọi.

Bất kỳ gợi ý nào để giúp tôi tìm hiểu lý do tại sao và nơi tập lệnh của tôi kết thúc?

Sự cố có thể tái sản xuất, hệ điều hành: linux 3.7.10

Trả lời

16

Tập lệnh đã bị hệ điều hành giết. Giá trị trả về âm là số hiệu tín hiệu được sử dụng để tiêu diệt quy trình.

Tập lệnh cần quá nhiều bộ nhớ. Tôi tìm thấy điều này trong 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

Nếu bạn có thể chia sẻ phần chính xác của mã nơi bộ nhớ bị rò rỉ, nó sẽ làm cho câu trả lời tốt hơn. –

+1

Tôi rất vui khi biết rằng hệ điều hành đã giết quá trình này vì bộ nhớ thấp. Tại sao kịch bản cần thiết cho nhiều bộ nhớ là một câu hỏi khác. – guettli

+1

Lưu ý rằng trạng thái thoát âm là cụ thể đối với [mô-đun con xử lý con của Python] (https://hg.python.org/cpython/file/a889c5524520/Lib/subprocess.py#l1034). Shell sẽ [trở về] (http://tldp.org/LDP/abs/html/exitcodes.html) '128 + signum'. –

Các vấn đề liên quan