Pode / proc / PID ainda existir quando o PID não está rodando?

11

é possível que exista uma pasta como /proc/4587 , mesmo que não haja um processo que tenha o PID 4587?

    
por David Dai 08.09.2017 / 10:26

1 resposta

24

Se /proc é apenas a proc mount (e ninguém está jogando truques com sobreposições), não, uma pasta baseada em pid existe apenas enquanto o processo correspondente existir em algum estado (incluindo como zumbi) . De fato, pouco antes de retornar uma entrada de diretório para um id de processo, o kernel revalida o processo 'existência - assim, no instante em que uma entrada de diretório é retornada, o processo correspondente ainda está lá. Acessando um diretório também começa procurando o processo correspondente. (Se os números de linha mudarem, procure por proc_pident_instantiate e proc_pident_lookup .)

Você pode encontrar problemas causados por listar /proc e usar os resultados posteriormente (mesmo alguns microssegundos depois): um processo pode ser executado quando você lista /proc e para antes de agir sobre os resultados.

    
por 08.09.2017 / 10:30