lsof arquivos de erros

3

Por que o lsof não consegue listar os arquivos que eu tenho abertos? Por exemplo, abro com o editor de texto algum arquivo no meu diretório pessoal.

$ gedit ~/.python_history

lsof nem funciona como raiz

$ sudo lsof | grep python_history

não lista nada. Por quê?

Editar e salvar o arquivo também não faz diferença. A execução do interpretador python também não faz diferença.

$ lsof | grep gedit

lista vários arquivos, mas não aqueles que estou editando.

    
por sdgsrg 18.01.2015 / 08:29

1 resposta

3

Gedit lê o arquivo na memória e fecha o identificador de arquivo. Tipicamente:

open("/path/to/your/file", O_RDONLY|O_LARGEFILE|O_NOATIME) = 18
read(18, "blah blah blah"..., 4096) = 305
close(18)                           = 0

ou algum mmap ou outro caminho. (Não tenho certeza exatamente como ele lê arquivos, mas o ponto é que ele não mantém os arquivos abertos.)

Depois disso, ele mantém a pesquisa para verificar se ela foi alterada. E reabra em escrever.

    
por 18.01.2015 / 09:34