Dienste und systemd

Socket-Aktivierung kann die Adresse nicht binden

Eine .socket-Unit scheitert an einem belegten Endpunkt. Ermittle Eigentümer und Aktivierungsmodell vor dem Ändern der Bindung oder einem Stopp.

Auf dieser Seite
  1. Symptome und Geltungsbereich
  2. Mögliche Ursachen
  3. Sicher prüfen
  4. Nächste Schritte nach Befund
  5. Quellen und Prüfung
  6. Verwandte Probleme

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 use

Ermittle 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.socket

Ergebnis 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 -ltnp

Ergebnis 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 -lxnp

Ergebnis 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?

Hinweis teilen#

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?

Hinweis teilen#

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.