linux user group brescia

immagine del castello

Archivio della mailing list

Socket connesso

Gabriele Villi gvilli a iol.it
Gio 7 Dic 2000 08:48:34 UTC
At 21.28 06/12/2000 +0100, you wrote:

>         Nella fattispecie si tratta del numero 523. Il fatto è che io non 
> ho la
>più pallida idea di che cosa sia un socket "UNIX domain" e nemmeno come sapere
>da chi è usato (netstat mi da come "path" @00000044) e che cosa sia 
>l'I-Node in
>questo caso (ha a che vedere con l'i-node dell'ext2?)

Premesso che io non so darti una risposta sicura, ti riporto il mio 
esperimento.

1) netstat

.... robaccia varia
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  3      [ ]         DGRAM                    564976 /dev/log
...altra robaccia ...

2) cerco (come root) il numero marcato come inode del socket

find /proc -lname 'socke*' -ls | fgrep 564976

e ottengo un po' di errori e di roba tra cui

33652736    0 lrwx------   1 root     root           64 Dec  7 08:06 
/proc/513/fd/0 -> socket:[564976]

3) a questo punto faccio

ls -l /proc/513/exe

ed ottengo

lrwx------   1 root     root            0 Dec  7 08:08 /proc/513/exe -> 
/sbin/syslogd

Quindi syslogd sembra essere il programma che ha il possesso sel socket 
unix il cui inode e' 564976.

In effetti 10 minuti *dopo* (perche' alle 9 di mattina sono MOLTO SVEGLIO!) 
ho letto l'output di netstat -? ed ho scoperto l'esitenza dell'opzione -p 
che mi riporta come output  (tra l'altro)

Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node PID/Program 
name    Path
unix  3      [ ]         DGRAM                    564976 
513/syslogd         /dev/log

Fin qui la volgare praticaccia.  Mi sembra ragionevole che un socket unix 
sia associato ad un inode - in un mondo in cui "(quasi) tutto e' un file" 
e' normale che spuntino inode da tutte le parti. La cosa maggiormente 
oscura e' il path, che in alcuni casi e' una roba del tipo @0000007a. Che 
e'? Leggendo man 4 unix ho visto che si parla di abstract namespace. Da 
quel che ho capito io sembra che un socket unix possa appoggiarsi o al 
filesystem reale (e fin qui ci sono) o a una non meglio precisata struttura 
del kernel. Vero? Falso? Chi ne sa qualcosa?

Ciao.
gv





Maggiori informazioni sulla lista Lug