Cuando ejecuto netstat --protocol unix
o lsof -U
veo que algunas rutas de socket de Unix se anteponen con el símbolo @, por ejemplo, @ / tmp / dbus-qj8V39Yrpa . Luego, cuando ejecuto ls -l /tmp
, no veo el archivo llamado dbus-qj8V39Yrpa allí.
La cuestión es lo que hace que antepone el símbolo @, significan? Y la segunda pregunta relacionada es: ¿dónde puedo encontrar ese archivo de socket Unix ( @ / tmp / dbus-qj8V39Yrpa ) en el sistema de archivos?
ss
programa también muestra zócalo criterios de valoración como "@ / tmp / .X11 en UNIX / X0"Respuestas:
El
@
probablemente indica una toma realizada en unaabstract namespace
, que no pertenece a un archivo en el sistema de archivos.Citando La programación Linux Interfaz de Michael Kerrisk :
Mostrar un signo
null byte
inicial para denotar ese tipo de socket puede ser difícil, por lo que tal vez esa sea la razón del@
signo inicial.fuente
Según
man 7 unix
Miradas como estos son 'abstracta' - por lo que hay una verdadera ruta está presente en el sistema de archivos
fuente