czy jest możliwe, że taki folder /proc/4587
istnieje, chociaż nie ma procesu, który ma PID 4587?
czy jest możliwe, że taki folder /proc/4587
istnieje, chociaż nie ma procesu, który ma PID 4587?
Odpowiedzi:
Jeśli /proc
jest tylko proc
wierzchowiec (i nikt nie gra sztuczkami z nakładkami), nie, folder oparty na pid istnieje tylko tak długo, jak odpowiedni proces istnieje w pewnym stanie (w tym jako zombie). W rzeczywistości, tuż przed zwróceniem pozycji katalogu dla identyfikatora procesu, jądro ponownie sprawdza istnienie procesu - więc w momencie zwrócenia pozycji katalogu odpowiedni proces nadal tam jest. Dostęp do katalogu rozpoczyna się również od wyszukania odpowiedniego procesu. (Jeśli numery linii się zmienią, poszukaj proc_pident_instantiate
i proc_pident_lookup
.)
Możesz napotkać problemy spowodowane wyświetleniem listy /proc
i użyciem wyników później (nawet kilka mikrosekund później): proces może być uruchomiony podczas tworzenia listy /proc
i zatrzymać się, zanim zaczniesz działać na podstawie wyników.
wait()
nie zostały do nich wywołane?
ps
pokazuje proces, jego /proc
katalog powinien istnieć.
ps
uzyskuje dostęp /proc
do informacji, które wyświetla.