Zombie là quá trình DEAD. Chúng không thể là 'kill' (Bạn không thể giết DEAD). Tất cả các quá trình cuối cùng sẽ chết, và khi chúng làm chúng trở thành zombie. Họ tiêu thụ gần như không có tài nguyên, đó là điều được mong đợi bởi vì họ đã chết! Lý do cho zombie là vì cha mẹ (quá trình) của zombie có thể truy xuất trạng thái thoát của zombie và thống kê sử dụng tài nguyên. Phụ huynh báo hiệu cho hệ điều hành rằng nó không còn cần zombie nữa bằng cách sử dụng một trong các lệnh gọi hệ thống Wait ().
Khi một tiến trình chết, tất cả các tiến trình con của nó trở thành con của tiến trình số 1, đó là tiến trình init. Ban đầu là '`luôn' 'chờ trẻ em chết, để chúng không còn là thây ma.
Nếu bạn có các quy trình zombie, điều đó có nghĩa là những thây ma đó đã không được cha mẹ của chúng chờ đợi (nhìn vào PPID được hiển thị bởi ps -l
). Bạn có ba lựa chọn: Khắc phục quy trình cha mẹ (làm cho nó chờ); giết cha mẹ; hoặc sống với nó. Hãy nhớ rằng sống với nó không quá khó vì zombie chiếm ít hơn một dòng phụ trong đầu ra của ps.
Zombie có thể được xác định trong đầu ra từ lệnh Unix Unix bằng sự hiện diện của chữ "Z" trong cột STAT. Zombie tồn tại trong hơn một khoảng thời gian ngắn thường chỉ ra lỗi trong chương trình mẹ. Cũng như các rò rỉ khác, sự hiện diện của một vài zombie không đáng lo ngại, nhưng có thể chỉ ra một vấn đề sẽ trở nên nghiêm trọng dưới tải nặng hơn.
Để loại bỏ zombie khỏi hệ thống, tín hiệu SIGCHLD có thể được gửi đến cha mẹ bằng tay, sử dụng lệnh kill. Nếu tiến trình cha mẹ vẫn từ chối gặt hái zombie, bước tiếp theo sẽ là loại bỏ tiến trình cha. Khi một tiến trình mất cha mẹ của nó, init trở thành cha mẹ mới của nó. Ban đầu định kỳ thực hiện lệnh gọi hệ thống chờ để gặt hái bất kỳ zombie nào với init là cha.
Ngoài ra còn có các quy trình mồ côi là một quy trình máy tính có quá trình cha mẹ đã kết thúc hoặc kết thúc.
Một tiến trình có thể trở thành mồ côi trong quá trình gọi từ xa khi máy khách xử lý sự cố sau khi thực hiện yêu cầu của máy chủ.
Trẻ mồ côi lãng phí tài nguyên máy chủ và có khả năng khiến máy chủ gặp rắc rối (Đây là sự khác biệt lớn nhất về tài nguyên giữa zombie và trẻ mồ côi (Ngoại trừ nếu bạn xem một số phim về zombie mồ côi). Tuy nhiên, có một số giải pháp cho vấn đề quá trình mồ côi:
Hủy diệt là kỹ thuật được sử dụng phổ biến nhất; trong trường hợp này, quá trình mồ côi bị giết.
Tái sinh là một kỹ thuật trong đó máy móc định kỳ cố gắng xác định vị trí cha mẹ của bất kỳ tính toán từ xa nào; tại đó các quá trình mồ côi bị giết.
Hết hạn là một kỹ thuật trong đó mỗi quy trình được phân bổ một lượng thời gian nhất định để hoàn thành trước khi bị giết. Nếu cần là một quá trình có thể "yêu cầu" thêm thời gian để kết thúc trước khi hết thời gian quy định.
Một tiến trình cũng có thể mồ côi chạy trên cùng một máy như tiến trình mẹ của nó. Trong một hệ điều hành giống như UNIX, mọi quy trình mồ côi sẽ ngay lập tức được áp dụng bởi quy trình hệ thống "init" đặc biệt. Hoạt động này được gọi là tái cha mẹ và xảy ra tự động. Mặc dù về mặt kỹ thuật, quy trình này có quy trình "init" là cha mẹ của nó, nó vẫn được gọi là quy trình mồ côi do quy trình ban đầu tạo ra nó không còn tồn tại.
Thêm thông tin:
http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process#ixzz1PCN9vojU
http://www.linuxsa.org.au/tips/zombie.html
http://www.brighthub.com/computing/linux/articles/79186.aspx
Làm thế nào để xác định và tiêu diệt quá trình treo, khi hệ thống bị treo và phản ứng chậm với đầu vào của người dùng?
Giết quá trình đang chạy trong máy Ubuntu từ xa từ máy Windows trong mạng LAN