Lorsque j'exécute netstat --protocol unix
ou que lsof -U
je vois que certains chemins de socket Unix sont précédés du symbole @, par exemple, @ / tmp / dbus-qj8V39Yrpa . Ensuite, lorsque je cours, ls -l /tmp
je ne vois pas de fichier nommé dbus-qj8V39Yrpa là - bas.
La question est de savoir ce que ce symbole @ ajouté signifie? Et la deuxième question connexe est - où puis-je réellement trouver ce fichier de socket Unix ( @ / tmp / dbus-qj8V39Yrpa ) sur le système de fichiers?
ss
programme plus moderne montre également des points de terminaison de socket comme "@ / tmp / .X11-unix / X0"Réponses:
Le
@
indique probablement un socket détenu dans unabstract namespace
qui n'appartient pas à un fichier du système de fichiers.Citation de l' interface de programmation Linux par Michael Kerrisk :
L'affichage d'un début
null byte
pour désigner ce type de socket peut être difficile, c'est peut-être la raison du@
signe avant.la source
Selon
man 7 unix
On dirait que ceux-ci sont «abstraits» - donc aucun chemin réel n'est présent sur le système de fichiers
la source