Câu trả lời:
Không có gì phải lo lắng:
Thây ma
Trên các hệ điều hành Unix, một quá trình zombie hoặc quá trình không còn tồn tại là một quá trình đã hoàn thành thực thi nhưng vẫn có một mục trong bảng quy trình, cho phép quá trình bắt đầu đọc trạng thái thoát của nó. Trong phép ẩn dụ đầy màu sắc của thuật ngữ, quá trình con đã chết nhưng chưa được gặt hái.
Khi một quá trình kết thúc, tất cả bộ nhớ và tài nguyên được liên kết với nó sẽ được giải phóng để chúng có thể được sử dụng bởi các quy trình khác. Tuy nhiên, mục của quy trình trong bảng quy trình vẫn còn. Phụ huynh được gửi tín hiệu SIGCHLD cho biết một đứa trẻ đã chết; bộ xử lý tín hiệu này thường sẽ thực hiện cuộc gọi hệ thống chờ, đọc trạng thái thoát và loại bỏ zombie. ID tiến trình và mục nhập của zombie trong bảng quy trình sau đó có thể được sử dụng lại. Tuy nhiên, nếu cha mẹ bỏ qua SIGCHLD, zombie sẽ bị bỏ lại trong bảng quy trình. Trong một số tình huống, điều này có thể được mong muốn, ví dụ nếu cha mẹ tạo ra một tiến trình con khác, nó đảm bảo rằng nó sẽ không được cấp ID tương tự.
Nguồn: http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process
Như đã giải thích trong câu trả lời được chấp nhận, bạn có một quy trình đã hoàn thành thực thi nhưng vẫn còn trong bảng quy trình: https://serverfault.com/a/390216/48449
Điều này sẽ không gây hại nếu đó chỉ là một quá trình, nhưng vẫn không nên xảy ra. Nếu có quá nhiều và bạn không khởi động lại hoặc khởi động lại quá trình cha mẹ gây ra những quy trình đó, bạn có thể đạt đến số lượng quy trình được phép tối đa của mình và gây ra sự cố nghiêm trọng.
Để tìm hiểu xem lo lắng có phù hợp không và zombie thuộc về quy trình nào khác, điều này phù hợp với tôi:
ps -elf --forest | grep -C5 '<[d]efunct>'
Tăng số lượng dòng ngữ cảnh nếu cần thiết để tìm hiểu về quy trình cha, lý tưởng là sửa quá trình đó để làm cho nó "gặt hái" các quy trình con đã kết thúc của nó.