Làm thế nào để tiêu diệt quá trình zombie trên máy mac


13

Làm cách nào để tiêu diệt tiến trình zombie hoặc tìm tiến trình cha mẹ trên máy Mac bằng Terminal?



3
@soandos Không phải là một bản sao, vì chủ đề đó không phải là về thây ma. Không có killtín hiệu nào hoạt động cho zombie IIRC. Tôi đã có điều này xảy ra trước đây.
Daniel Beck

Thông thường người ta có thể tiêu diệt zombie nếu quá trình cha mẹ được biết đến nhưng điều này cũng đòi hỏi phải giết nó, điều này không phải lúc nào cũng là một lựa chọn dễ chịu. Vì vậy, tôi tự hỏi nếu có một giải pháp khác cho điều này.
eFrane

Câu trả lời:


16

Hack Saw nói:

Đáng buồn thay , có vẻ như giết zombie là tất cả về việc giết cha mẹ , và nếu cha mẹ là / sbin / launchd, bạn có thể giết nó chỉ bằng cách khởi động lại.

Nó sẽ là một ý tưởng rất tồi để giết launchd, nhưng bạn có thể nói với HUP.

Thử sudo kill -s HUP 1

Điều đó sẽ gây ra launchdviệc khởi động lại mà không cần khởi động lại. Điều này đã làm việc cho tôi trong quá khứ (wrt. Loại bỏ các mục zombie).


3

Đáng buồn thay , có vẻ như giết zombie là tất cả về việc giết cha mẹ , và nếu cha mẹ là / sbin / launchd, bạn có thể giết nó chỉ bằng cách khởi động lại.

Tôi đang nhận được zombie từ việc sử dụng Xcode và dừng trình giả lập, và nó đang giao zombie cho cá nhân / sbin / launchd của riêng tôi, nó đã không biến mất khi tôi đăng xuất.

ps -xo pid, ppid, stat, lệnh sẽ hiển thị cho bạn các quy trình của bạn, với ID cha của chúng trong cột thứ hai.


1

quá trình zombie đã chết và không thể bị giết. Chúng nên được xóa khỏi bảng quy trình một cách tự động khi tiến trình cha chết.

Họ không làm chậm máy của bạn và bạn có thể để chúng ở đó (chúng chỉ là các mục trong bảng quy trình).

Có một số lượng tối đa các quy trình (bạn có thể kiểm tra nó sysctl kern.maxproc) và các quy trình zombie sẽ giảm bớt nó (khi chúng được tính).

Nếu bạn đạt đến giới hạn này, bạn sẽ không thể tạo quy trình mới và bạn sẽ buộc phải khởi động lại.


"Nên được loại bỏ", nhưng chúng không phải lúc nào cũng. Xcode rất tệ khi rời khỏi các quy trình zombie và chúng không được dọn sạch ngay cả khi Xcode chết / bị thoát / bị giết.
JRG-Nhà phát triển

@ JRG-Developer Tôi đồng ý nhưng chúng không phải là vấn đề. Họ không tiêu thụ bất kỳ tài nguyên.
Matteo

2
Thực tế chúng là một vấn đề khi quá nhiều được tạo ra và fork không thể khởi chạy bất kỳ quy trình mới nào và bạn buộc phải khởi động lại.
Adam

2
Chúng là một vấn đề khi bạn muốn khởi động lại quá trình bị lỗi và sử dụng lại nhưng không thể khởi động lại.
MarcusJ

4
Khi một ứng dụng ở trạng thái đó thì bạn không thể khởi chạy lại cho đến khi mục cũ bị xóa. Nó không sử dụng bất kỳ tài nguyên nào nhưng sự ô nhiễm của bảng sẽ ngăn một trường hợp mới khởi chạy, do đó bạn bị chặn cho đến khi bạn khởi động lại.
George
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.