Es kommt ab und zu vor, dass ein Programm einen Fehler wie z.B. „Port ist bereits belegt“ oder „Port already in use“ meldet. Dies deutet darauf hin, dass bereits ein anderer Prozess den benötigten Port benutzt.
Um unter Mac OS herauszubekommen welche Prozesse welche Ports benutzen, kann leider nicht einfach der Befehl „netstat“ oder „fuser“ verwendet werden.
Das gewünschte Ergebnis liefert aber folgender Befehl, der in den Terminal eingeben werden kann.
lsof -i -P | grep -i LISTEN
Dieser Befehl listet alle Prozesse des aktuellen Benutzers auf.
Sollen alle Prozesse aufgelistet werden, muss „sudo“ vorangestellt werden um den Befehl als „root“ Benutzer ausführen zu lassen.
sudo lsof -i -P | grep -i LISTEN
Hinweis: Hier müssen Sie dann zusätzlich noch Ihr Administrator Passwort eingeben.
Befehl über Alias aufrufen
Da dieser Befehl eventuell öfters benötigt wird und man sich diesen nur umständlich merken kann, ist es möglich diesen Befehl abzuspeichern und über einen Alias aufzurufen.
Dazu muss der Befehl in die .bash_profile Datei, die im Home-Verzeichnis des aktuellen Benutzers liegt, eingetragen werden.
Nachdem der Terminal aufgerufen wurde müssen folgende Schritte ausgeführt werden
1. In das Home-Verzeichnis wechseln:
cd ~
2. Falls die Konfigurations-Datei .bash_profile noch nicht existiert, kann diese über folgenden Befehl angelegt werden:
touch .bash_profile
3. Konfigurationsdatei mit einem Text-Editor zum Bearbeiten öffnen:
Um die Datei z. B. mit dem VI Editor zu öffnen kann folgender Befehl verwendet werden:
vi .bash_profile
Soll ein visueller Editor verwendet werden, sehen Sie sich bitte folgenden Beitrag an:
Visuellen Editor im Terminal öffnen um Datei zu bearbeiten
4. Folgender Inhalt muss dann in diese Datei eingetragen werden:
# replacement netstat cmd to find ports used by apps on OS X alias netstat_ports="sudo lsof -i -P | grep -i LISTEN"
Anstelle von „netstat_ports“ kann natürlich jeder beliebige Alias (aber ohne Leerzeichen) verwendet werden.
5. Um den neuen Befehl direkt benutzen zu können, muss die Datei mit folgendem Befehl neu geladen werden:
. .bash_profile
Jetzt kann im Terminal ganz einfach der Befehl „netstat_ports“ angewendet werden, um eine Liste mit allen Prozessen und deren Ports anzeigen zu lassen.
Danke für Deinen Beitrag – hat mit mit meinem Mac sehr weiter geholfen
cheers*stephan