web-dev-qa-db-fra.com

Pourquoi lsof affiche-t-il le même descripteur de fichier pour différents processus?

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 ...

Lorsque je liste les fichiers ouverts avec le commutateur -i, j'ai découvert que certains processus ont les mêmes fd. Par exemple, la sortie ci-dessus, 28597 et 28624 pid ont les mêmes fd. Cela signifie que ces processus peuvent atteindre le même espace mémoire. cette ? Comment peuvent-ils atteindre la même zone et pourquoi? Quelle est également la signification de u (18u)? Certains fd se retrouvent avec w.

2
myildirim

Cela signifie que ces processus peuvent atteindre le même espace mémoire.

Pourquoi voudraient-ils atteindre un espace mémoire commun? La réponse est simple - pour se parler!

Dans votre cas, dropbox parle à gnome-panel, qui fournit l'icône d'état Dropbox.

Le manuel libc a ceci à dire:

La principale utilisation de la duplication d'un descripteur de fichier est d'implémenter la redirection d'entrée ou de sortie: c'est-à-dire de changer le fichier ou le canal auquel correspond un descripteur de fichier particulier à.

Le drapeau u signifie simplement que le FD est en lecture-écriture; w signifie en écriture seule, r signifie en lecture seule.

3
ish

Les descripteurs de fichiers sont définis dans un espace de noms par processus. Ils ne sont pas uniques pour l'ensemble du système. Les deux processus indiqués n'accèdent pas au même fichier comme en témoigne la colonne DEVICE qui, dans ce cas, affiche probablement le nom de périphérique de votre socket TCP TCP.

2
onlyanegg