czy jest możliwe, że taki folder /proc/4587istnieje, chociaż nie ma procesu, który ma PID 4587?
czy jest możliwe, że taki folder /proc/4587istnieje, chociaż nie ma procesu, który ma PID 4587?
Odpowiedzi:
Jeśli /procjest tylko procwierzchowiec (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_instantiatei proc_pident_lookup.)
Możesz napotkać problemy spowodowane wyświetleniem listy /proci użyciem wyników później (nawet kilka mikrosekund później): proces może być uruchomiony podczas tworzenia listy /proci zatrzymać się, zanim zaczniesz działać na podstawie wyników.
wait()nie zostały do nich wywołane?
pspokazuje proces, jego /prockatalog powinien istnieć.
psuzyskuje dostęp /procdo informacji, które wyświetla.