When I run netstat --protocol unix
or lsof -U
I see that some unix socket paths are prepended with @ symbol, for example, @/tmp/dbus-qj8V39Yrpa. Then when I run ls -l /tmp
I don't see file named dbus-qj8V39Yrpa there.
The question is what does that prepended @ symbol denote? And second related question, is — where can I actually find that unix socket file (@/tmp/dbus-qj8V39Yrpa) on the filesystem?
Best Answer
The
@
probably indicates a socket held in anabstract namespace
which doesn't belong to a file in the filesystem.Quoting from The Linux Programming Interface by Michael Kerrisk:
Displaying a leading
null byte
to denote such type of a socket may be difficult, so that is maybe the reason for the leading@
sign.