Wozu dient das Pluszeichen in einem Symlink, der auf '127.0.1.1:+xxxxx' zeigt?

6177
myMethod

Auf meinem Linux-Dateisystem verweist ein Symlink auf 127.0.1.1:+xxxxx.

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

52
Ist dieser symbolische Link unter / proc? Joshua vor 6 Jahren 0
@Joshua: Wahrscheinlicher unter ~ / .mozilla / oder ähnlichem. Firefox / Thunderbird und iirc Steam verwenden solche Symlinks zum Sperren. grawity vor 6 Jahren 4
Ist xxxxx eine Zahl oder die Zeichen xxxxx? Mawg vor 6 Jahren 2
Wahrscheinlich ohne Bezug, aber nur zur Information. In einigen IRC-Clients war das Pluszeichen vor dem Port vorhanden, um darauf hinzuweisen, dass der Remote-Server SSL / TLS verwendet. eKKiM vor 6 Jahren 2

2 Antworten auf die Frage

95
grawity

Symbolische Links, die nicht auf eine Datei verweisen, haben überhaupt keine generische Bedeutung. In diesem Fall kann es sich um die Prozess-ID oder um einen Port handeln, über den ein spezielles Protokoll gesprochen wird, oder um einen anderen Bezeichner. Es hängt alles davon ab, von welchem ​​Programm es gemacht wurde.

Software, die diese Links erstellt, nutzt einfach die Tatsache, dass 1) das Ziel eines Symlinks nicht existiert oder sogar totaler Unsinn ist; 2) Das Erstellen eines Symlinks ist eine vollständig systematische Single-Syscall-Operation (wie das Lesen des Ziels), im Gegensatz zur Erstellung einer regulären Datei, für die mindestens 3 separate Systemaufrufe erforderlich sind.

Daher kann die Erstellung von Symlinks als Sperrmethode missbraucht werden (um sicherzustellen, dass ein Programm nur einmal vorhanden ist), auch wenn andere Mechanismen unzuverlässig sind. Das Programm benötigt den symbolischen Link nicht, um tatsächlich in eine echte Datei aufzulösen: Es ist nur wichtig, ob das Erstellen des Links erfolgreich ist oder ob er fehlschlägt, weil er bereits vorhanden ist.

"* Im Gegensatz zur Erstellung einer regulären Datei, für die mindestens drei separate Systemaufrufe erforderlich sind. *" - Könnten Sie das erläutern? Meinen Sie "fopen", "fwrite" und "fclose"? Nic Hartley vor 6 Jahren 5
@NicHartley: Die Systemaufrufe sind "open" (oder vielleicht "creat" in alter Software), "write" und "close", nicht die von stdio bereitgestellten f * -Versionen. Aber ja, Sie müssen zumindest "öffnen" und "schreiben", um die Datei zu erstellen und etwas Bedeutsames hineinzulegen. Wenn Sie nun wollen, dass ein Code "versucht, ihn zu erstellen, wenn er erfolgreich ist, einige Informationen einfügen, ansonsten einige Informationen daraus lesen", kann der zweite Prozess einfach sein `read` versuchen, bevor der erste Prozess` eine Chance hat schreiben ". `symlink` vermeidet das; Entweder erfolgreich sein und den Link erstellen oder fehlschlagen und sicherstellen, dass "readlink" die Informationen für Sie enthält. Guntram Blohm vor 6 Jahren 11
"... kann ** als eine Art ** missbraucht werden ..." Wird dieser Missbrauch wie in "in einer Weise verwendet, in der er nicht verwendet werden sollte" oder "in einer Weise verwendet, in der er nicht verwendet werden sollte"? The Guy with The Hat vor 6 Jahren 0
22
Albin

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

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

Ich habe es gerade überprüft. In meinem Fall ist es wirklich so. myMethod vor 6 Jahren 1
Gibt es irgendwo eine Dokumentation dieses Formats, auf die Sie verlinken könnten? David Z vor 6 Jahren 1
Nicht sicher, ich erinnere mich nur an die Erfahrungen aus der Praxis. Albin vor 6 Jahren 1
Es klingt, als würden Sie von einem Symlink in einem speziellen Verzeichnis sprechen, wie zum Beispiel `/ proc` oder` / dev`. Kannst du erklären, wofür dieser Symlink verwendet wird? Barmar vor 6 Jahren 2
@Barmar Ich beziehe mich allgemein auf die Notation, ich spreche nicht von einem bestimmten Symlink in einem bestimmten Verzeichnis Albin vor 6 Jahren 0
Dies ist das erste Mal, dass ich diese Notation überhaupt gesehen habe, daher bin ich überrascht zu hören, dass Sie sagen, dass es sich um eine allgemeine Notation handelt. Wo haben Sie gesehen, dass es eine Prozess-ID bedeutete? Barmar vor 6 Jahren 4
Ich habe keine Ahnung, wie "allgemein" diese Notation wirklich ist, ob es sich um eine verteilungsspezifische Sache handelt oder was auch immer. Als ich vor einiger Zeit nachgeschlagen habe, verwies die einzige Ressource, die ich fand, auf die Nummer nach dem + auf eine Prozess-ID, die auch in meinem Fall die Lösung war. myMethod sagte in seinem ersten Kommentar, dass es auch in seinem Anwendungsfall zutrifft. Albin vor 6 Jahren 0
Ich habe diese Notation noch nie zuvor gesehen, es klingt, als könnte sie für eine bestimmte Anwendung spezifisch sein. Erinnern Sie sich, wo Sie es vorher gesehen haben? Barmar vor 6 Jahren 0
@Barmar Nein, ich erinnere mich nur daran, dass ich eine Weile gebraucht habe, um die Antwort zu finden. Schauen Sie sich einfach die "IP: +" - Notation an, nachdem Sie einige Versuch und Irrtum durchgeführt haben. Sie sollten ein paar Beispiele finden (die meisten Ergebnisse weisen Sie auf die IP: PORT-Notation hin, aber das war es nicht, deshalb erinnere ich mich immer noch daran - und daran war es.) ein Linux-basiertes Problem, mit dem ich mich nicht oft beschäftige) Albin vor 6 Jahren 0