it-swarm.com.de

Wofür steht das Pluszeichen in einem Symlink, der auf '127.0.1.1:+xxxxx' verweist?

In meinem Linux-Dateisystem zeigt ein Symlink auf 127.0.1.1:+xxxxx.

Warum das Pluszeichen? Könnte es auch ein Minus geben? Warum nicht einfach 127.0.1.1:xxxxx?

52
myMethod

Symbolische Links, die nicht auf eine Datei verweisen, haben überhaupt keine generische Bedeutung. In diesem Fall ist möglicherweise die Prozess-ID oder ein Port, über den ein spezielles Protokoll gesprochen wurde, oder ein anderer Bezeichner. Es hängt alles davon ab, welches Programm es gemacht hat.

Software, die diese Links erstellt, nutzt einfach die Tatsache, dass 1) das Ziel eines Symlinks nicht existent oder sogar totaler Unsinn sein kann; 2) Das Erstellen eines Symlinks ist eine vollständig atomare Operation mit einem einzigen Systemaufruf (wie das Lesen des Ziels), im Gegensatz zum Erstellen einer regulären Datei, für die mindestens drei separate Systemaufrufe erforderlich sind.

Auf diese Weise kann die Erstellung von Symlinks zum Sperren (Sicherstellen einer einzelnen Instanz eines Programms) missbraucht werden, auch wenn andere Mechanismen möglicherweise nicht zuverlässig sind. Das Programm benötigt den Symlink nicht, um tatsächlich in eine echte Datei aufgelöst zu werden: Es ist nur wichtig, ob Creating der Link erfolgreich ist oder ob er fehlschlägt, weil er bereits vorhanden ist.

95
grawity

Soweit ich weiß, bedeutet das "+", dass sich die Nummer nach der IP (das "xxxxx") auf eine "Prozess-ID" bezieht (kein Port, der normalerweise die Notation [IP-Adresse]: [Portnummer] verwendet).

Es ist möglich, dass sich diese "Notation" (ich bin nicht sicher, ob ich sie als "Notation" bezeichnen würde, da ich keine "offizielle" Dokumentation kenne) auf etwas anderes bezieht, wenn sie von einer bestimmten Anwendung verwendet wird möglichkeit nicht nur mit symlinks. Die einzigen Fälle, die ich kenne (und bei einer Suche finden konnte, die nicht zu umfangreich war), bezogen sich "+ XXXX" immer auf die Prozess-ID.

22
Albin