ADMIN-Tipp: Welcher Prozess benutzt den Port?

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

"# Opening port: bind: Address already in use." Wie man mit diesem Malheur am besten umgeht und welche Tools es dafür gibt, verrät dieser ADMIN-Tipp.

Wahrscheinlich ist eine solche Meldung beinahe jedem Unix-Administrator schon einmal begegnet: ""bind: Address already in use." Woher sie stammt, lässt sich der Meldung unmittelbar entnehmen, nämlich der C-Bibliothekfunktion "bind()", die beim Aufbau einer IP-Verbindung eine Beziehung zwischen dem Socket und der Adresse herstellt.

Was die Meldung mitteilen will ist, dass die Kombination von IP-Adresse und Port bereits von einem anderen Prozess belegt ist. Weiß man nicht, um welchen Port es sich handelt, hilft das immer wieder bewährte Strace weiter. Als Filter bietet sich der oben erwähnte Funktionsname an:

$ strace -e bind Prozess
...
bind(4, {sa_family=AF_INET, sin_port=htons(6379), sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EADDRINUSE (Address already in use)

Hier geht es also um den Port 6379. Wer ihn benutzt, verrät das Programm "lsof" ("List all open files"), das noch allerhand andere Tricks auf Lager hat:

$ sudo lsof -i:6379
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 8509 redis 4u IPv4 612866 0t0 TCP localhost:6379 (LISTEN)

Hier ist es also der Redis-Server mit der PID 8509. Im Zweifelsfall muss man "lsof" mit Root-Rechten ausführen, da es als normaler User ausgeführt nicht alle Programme anzeigt. 

20.11.2012

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018