có thể là một thư mục giống như /proc/4587tồn tại mặc dù không có quá trình có PID 4587?
có thể là một thư mục giống như /proc/4587tồn tại mặc dù không có quá trình có PID 4587?
Câu trả lời:
Nếu /procchỉ là thú proccưỡi (và không ai chơi trò bịp với lớp phủ), thì không, thư mục dựa trên pid chỉ tồn tại miễn là quá trình tương ứng tồn tại ở một số trạng thái (bao gồm cả zombie). Trong thực tế, ngay trước khi trả về một mục nhập thư mục cho id quá trình, kernel xác nhận lại sự tồn tại của quy trình - vì vậy ngay khi một mục nhập thư mục được trả về, quy trình tương ứng vẫn còn đó. Truy cập một thư mục cũng bắt đầu bằng cách tra cứu quá trình tương ứng. (Nếu số dòng thay đổi, hãy tìm proc_pident_instantiatevà proc_pident_lookup.)
Bạn có thể gặp phải các vấn đề do liệt kê /procvà sử dụng kết quả sau đó (thậm chí vài micrô giây sau): một quy trình có thể được chạy khi bạn liệt kê /procvà dừng trước khi bạn hành động theo kết quả.
wait()chưa được gọi cho chúng thì sao?
pshiển thị quá trình, /procthư mục của nó sẽ tồn tại.
pstruy cập /procđể tìm thông tin mà nó hiển thị.