Khi tôi chạy Zotero / Firefox, chúng thường gặp sự cố và tôi bị bỏ lại với các quy trình zombie; sau này tôi không thể mở các phiên bản mới của Zotero hoặc Firefox. Tôi muốn thoát khỏi các quá trình zombie này hơn là khởi động lại, vì vậy đối với <pid>
quá trình zombie,
$ ps -p <pid> -o ppid=
cho tôi <parent_pid>
và
ps aux | awk -v PID=<parent_pid> '$2 == PID {print $0}'
cho tôi biết quá trình cha mẹ là /sbin/launchd
cho người dùng crippledlambda
.
Có cách nào để khởi động lại mà không làm hỏng hệ thống của tôi không?
sudo kill -1 <parent_pid>
Không lam gi cả. Tôi đã thử viết điều này trong một kịch bản và chạy nó với sudo
:
for i in `launchctl list | grep launchd | awk -v PID=<parent_pid> '$1==PID { print $NF }'`; do `launchctl stop $i && launchctl start $i` ; done
và điều này rõ ràng (?) để lại cho tôi một màn hình màu xám không phản hồi nên dù sao tôi cũng phải khởi động lại. Cảm ơn những đề xuất bạn đưa ra.
launchd
phải luôn đọc trạng thái thoát của trẻ em ngay lập tức. Nếu chúng không thực sự là zombie, thì bạn nên giết chúng. Trong cả hai trường hợp, giết chóc launchd
sẽ gây ra nhiều vấn đề hơn nó giải quyết.