Возможно ли, что такая папка /proc/4587
существует, хотя нет процесса с PID 4587?
Возможно ли, что такая папка /proc/4587
существует, хотя нет процесса с PID 4587?
Ответы:
Если /proc
используется только proc
монтирование (и никто не разыгрывает трюки с оверлеями), нет, папка на основе pid существует только до тех пор, пока соответствующий процесс существует в каком-то состоянии (в том числе в виде зомби). Фактически, непосредственно перед возвратом записи каталога для идентификатора процесса, ядро повторно проверяет существование процесса - поэтому в момент возврата записи каталога соответствующий процесс все еще существует. Доступ к каталогу также начинается с поиска соответствующего процесса. (Если номера строк изменяются, ищите proc_pident_instantiate
и proc_pident_lookup
.)
Вы можете столкнуться с проблемами, вызванными перечислением /proc
и использованием результатов позже (даже спустя несколько микросекунд): процесс может выполняться, когда вы выводите список /proc
, и останавливаться, прежде чем действовать на результаты.
wait()
не были вызваны на них?
ps
показывает процесс, его /proc
каталог должен существовать.
ps
доступ /proc
к информации, которую он отображает.