Por que a emissão de um lsof lança dois processos?

1

Estou no OS X 10.7 atual. Às vezes eu quero verificar qual aplicativo bloqueia um determinado arquivo. Eu faço isso por

lsof | grep $FILENAME

Percebi que a execução desse comando invoca duas instâncias de lsof . Por que isso?

    
por Max Ried 25.06.2012 / 22:42

1 resposta

4

lsof faz isso internamente para evitar o deadlocking. Se ele tiver que executar uma operação que possa travar, ele executa um processo auxiliar. Se a operação travar, pode matar o processo auxiliar. Está documentado no manual:

Lsof can be blocked by some kernel functions that it uses - lstat(2), readlink(2), and stat(2). These functions are stalled in the kernel, for example, when the hosts where mounted NFS file systems reside become inaccessible.

Lsof attempts to break these blocks with timers and child processes, ...

    
por 25.06.2012 / 22:49

Tags