Symptome und Geltungsbereich
- Die Socket-Unit meldet Address already in use.
- Ein anderer Daemon lauscht bereits am Endpunkt.
Betroffene Umgebung
systemd-TCP- oder Unix-Socket-Aktivierung; ss gehört zu iproute2.
Erkennbare Meldungen (synthetische Beispiele)
systemd[1]: example.socket: Failed to listen on sockets: Address already in useErmittle den Listener-Eigentümer vor Netzwerk- oder Dienständerungen.
Mögliche Ursachen
Das sind mögliche Erklärungen, keine bestätigte Diagnose. Mehrere unabhängige Fehler können gleichzeitig vorliegen.
- Ein anwendungseigener Listener kann mit systemd-Socket-Aktivierung konkurrieren.
- Doppelte Units, überlappende IPv4-/IPv6-Wildcards oder alte Unix-Socket-Knoten können kollidieren.
Sicher prüfen
Führe jeweils einen Befehl in der passenden Sitzung aus. Lies zuerst die Erklärung. Großgeschriebene Platzhalter brauchen deine Werte; Werkzeuge und Rechte unterscheiden sich je nach Distribution. Die Website zeigt Befehle an und führt sie niemals aus.
Prüfschritt 1
Ersetze example.socket; lies ListenStream und Bindevorgaben.
systemctl cat example.socketErgebnis einordnen: Ein IPv6-Wildcard-Socket kann je nach BindIPv6Only auch IPv4 abdecken. Unterscheide TCP von einem Unix-Pfad.
Prüfschritt 2
Liest TCP-Listener; alle Prozesseigentümer können administrative Leserechte benötigen.
ss -ltnpErgebnis einordnen: Vergleiche Adresse und Port einschließlich Wildcards. Der Socket-Manager unterscheidet sich von einem unabhängigen Daemon.
Prüfschritt 3
Nutze dies für Unix-Endpunkte; Prozessdetails können eingeschränkt sein.
ss -lxnpErgebnis einordnen: Entferne keinen Pfad mit aktivem Listener. Ein Knoten ohne Listener benötigt Lebenszyklus- und Eigentümerprüfung.
Nächste Schritte nach Befund
Einen Listener-Eigentümer festlegen
Unterstützt die Anwendung Socket-Aktivierung, konfiguriere ihren dokumentierten Modus für übergebene Sockets und entferne den konkurrierenden Listener. Andernfalls deaktiviere die ungenutzte Socket-Unit.
Vorsicht: Ein Listener-Stopp unterbricht Clients. Prüfe die Unterstützung übergebener Dateideskriptoren vor der Aktivierung.
Wiederherstellung / Rücknahme: Stelle Listenerwerte und Unit-Aktivierung zurück und starte den früheren Eigentümer im Wartungsfenster.
Hat dir dieser Hinweis geholfen?
Bestätigte Endpunktkollision beheben
Benötigen verschiedene Dienste eigene Endpunkte, ändere eine Bindung und passe Clients oder Proxy an. Entferne alte Unix-Knoten erst nach Eigentümerprüfung und Ausschluss eines aktiven Listeners.
Vorsicht: Notiere Firewall- und Clientannahmen. Ein entfernter aktiver Socket macht einen laufenden Dienst unerreichbar.
Wiederherstellung / Rücknahme: Stelle Bindung und Clients zurück; ein Unix-Socket entsteht beim Neustart seines Eigentümers, nicht durch eine normale Datei.
Hat dir dieser Hinweis geholfen?
Quellen und Prüfung
Diese Anleitung basiert auf Originalquellen von Projekten oder Distributionen und wurde am genannten Datum redaktionell geprüft. Das ist eine Quellenprüfung, kein Nachweis einer auf deiner Hardware reproduzierten Lösung. Log-Beispiele sind synthetische Testdaten. Versionsabhängige Details müssen zur installierten Ausgabe passen.
- systemd.socket — upstream manual hosted by Debian (Projekt- oder Distributionsdokumentation)
- systemd.service — upstream manual hosted by Debian (Projekt- oder Distributionsdokumentation)