2009-03-09 26 views

Trả lời

118

Hãy thử điều này:

grep -i 'killed process' /var/log/messages 
+12

FWIW, tôi nhận được những tin nhắn trong syslog, hoặc kern.log, nhưng không phải thư mục/var/log/messages – jberryman

+24

Bạn có thể sử dụng "egrep -i - r 'quá trình giết'/var/log/"để tìm kiếm nó cũng ở những nơi khác. – metdos

+4

@jberryman: Vì một số lý do, syslog nằm trong '/ var/log/syslog' trên một số bản phân phối và'/var/log/messages' trên những người khác. Tôi nghĩ rằng đó là Debian cho cựu và Red Hat cho sau này, BICBW. –

13

Hãy thử điều này:

grep "Killed process" /var/log/syslog 
97

Hãy thử điều này, do đó bạn không cần phải lo lắng về nơi các bản ghi của bạn là

dmesg | egrep -i 'killed process' 
+1

Điều này cũng hữu ích, nhưng trong khi tôi tiếc là không thể giải thích nó, tôi thấy kết quả trong '/ var/log/messages' không hiển thị trong' dmesg'/'/ var/log/dmesg'. Nó có thể là một số loại cấu hình sai, nhưng đáng chú ý là sử dụng cả hai cách tiếp cận có thể là một ý tưởng tốt. – kungphu

+3

Không chắc về tệp nhật ký của bạn, nhưng đầu ra của dmesg là từ bộ đệm vòng có kích thước giới hạn. Nếu những thứ khác đã lấp đầy bộ đệm kể từ khi kẻ giết người oom thì bạn sẽ mất đầu ra kẻ giết người. –

+0

Đây là cách duy nhất tôi tìm thấy cách nhìn thấy quá trình đó đã bị giết trong thùng chứa OpenVZ – igo

33

tôi biết đây là một chủ đề lịch sử nhưng bây giờ dstat cung cấp tính năng để tìm ra trong hệ thống đang chạy của bạn mà quá trình này là ứng cử viên bị giết bởi cơ chế oom ism

dstat --top-oom 
--out-of-memory--- 
    kill score 
java   77 
java   77 
java   77 

và theo trang người đàn ông

--top-oom 
      show process that will be killed by OOM the first 
Các vấn đề liên quan