Por que o lsof mostra o mesmo descritor de arquivo para diferentes processos?

2
lsof -i :80
COMMAND     PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
gnome-pan 28597 murat   18u  IPv4 2907888      0t0  TCP ....
gnome-pan 28597 murat   19u  IPv4 2907903      0t0  TCP ....
dropbox   28624 murat   18u  IPv4 2755213      0t0  TCP ...

Quando eu listo os arquivos abertos com a opção -i, descubro que alguns processos têm o mesmo fd. Por exemplo, a saída acima, 28597 e 28624 pid tem o mesmo fd. Isso significa que esse processo pode atingir o mesmo espaço de memória. o motivo disso? Como eles podem alcançar a mesma área e por quê? Além disso, qual é o significado de u (18u)? Alguns fd's acabam com w.

    
por myildirim 03.07.2012 / 09:52

2 respostas

3
  

Isso significa que esse processo pode atingir o mesmo espaço de memória.

Por que eles querem alcançar um espaço de memória comum? A resposta é simples - falar um com o outro!

No seu caso, dropbox está falando com gnome-panel , que fornece o ícone de status do Dropbox.

O libc manual tem isso para diga:

  

O principal uso da duplicação de um descritor de arquivo é implementar redirecionamento de entrada ou saída: isto é, alterar o arquivo ou canal ao qual um descritor de arquivo específico corresponde.

O sinalizador u significa simplesmente que o FD é leitura-gravação; w significa somente gravação, r significa somente leitura.

    
por ish 03.07.2012 / 10:10
2

Os descritores de arquivos são definidos em um namespace por processo. Eles não são exclusivos para todo o sistema. Os dois processos mostrados não estão acessando o mesmo arquivo, como evidenciado pela coluna DEVICE , que, nesse caso, provavelmente mostra o nome do dispositivo do seu soquete TCP.

    
por onlyanegg 11.10.2016 / 03:40