có thể là một thư mục giống như /proc/4587
tồ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/4587
tồn tại mặc dù không có quá trình có PID 4587?
Câu trả lời:
Nếu /proc
chỉ là thú proc
cưỡ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_instantiate
và proc_pident_lookup
.)
Bạn có thể gặp phải các vấn đề do liệt kê /proc
và 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ê /proc
và 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?
ps
hiển thị quá trình, /proc
thư mục của nó sẽ tồn tại.
ps
truy cập /proc
để tìm thông tin mà nó hiển thị.