é possível que /proc/4587
exista uma pasta como essa, mesmo que não exista um processo com o PID 4587?
é possível que /proc/4587
exista uma pasta como essa, mesmo que não exista um processo com o PID 4587?
Respostas:
Se /proc
é apenas a proc
montagem (e ninguém está fazendo truques com sobreposições), não, uma pasta baseada em pid existe apenas enquanto o processo correspondente existir em algum estado (inclusive como um zumbi). De fato, pouco antes de retornar uma entrada de diretório para uma identificação de processo, o kernel re-valida a existência do processo - assim, no instante em que uma entrada de diretório é retornada, o processo correspondente ainda está lá. O acesso a um diretório também começa pesquisando o processo correspondente. (Se os números das linhas mudarem, procure proc_pident_instantiate
e proc_pident_lookup
.)
Você pode encontrar problemas causados pela listagem /proc
e uso dos resultados posteriormente (até alguns microssegundos depois): um processo pode estar em execução quando você listar /proc
e parar antes de agir sobre os resultados.
wait()
não foram chamados?
ps
mostra o processo, seu /proc
diretório deve existir.
ps
acessa /proc
para encontrar as informações exibidas.