Ein schnelles Tutorial fuer macOS Monterey

Kannst du einen Dienst auf deinem Mac nicht starten, weil Port 5000 bereits belegt ist?

Vielleicht bist du ein Flask-Entwickler und fragst dich, warum deine App nicht startet.

Dieser Beitrag erklaert, warum Port 5000 belegt sein koennte, und fuehrt dich durch Optionen und Schritte zur Loesung.

Es ist mir kuerzlich passiert, als ich auf ein neues MacBook wechselte und versuchte, eine Flask-App wieder zum Laufen zu bringen.

Beim Starten der App bekam ich immer folgende Meldung:

Ports are not available: listen tcp 0.0.0.0:5000: bind: address already in use

Dies ist die Maschine, an der ich arbeite:

  • macOS Monterey Version 12.0.1
  • MacBook Pro (16-Zoll, 2021)
  • Apple M1 Max

Meine erste Aktion war zu pruefen, was Port 5000 verwendet, indem ich lsof -i:5000 im Terminal ausfuehrte.

~ % lsof -i:5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ControlCe 20931 --------- 22u IPv4 0xa77c95dcd16d38f7 0t0 TCP *:commplex-main (LISTEN)
ControlCe 20931 --------- 23u IPv6 0xa77c95dcd16c66df 0t0 TCP *:commplex-main (LISTEN)

Das Ergebnis: Ein Dienst namens “ControlCentre” mit Prozess-ID 20931 verwendet Port 5000.

Schau dir die Ressourcen unten an, um mehr ueber das Control Centre zu erfahren. Hier ist ein kurzes Zitat aus dem Handbuch:

Das Kontrollzentrum auf dem Mac bietet schnellen Zugriff auf wichtige macOS-Einstellungen – wie Lautstaerke, Helligkeit, WLAN oder Fokus – und zeigt an, wenn Ihr Mac eine Kamera oder ein Mikrofon verwendet. Sie koennen das Kontrollzentrum anpassen, um weitere Elemente hinzuzufuegen, wie z.B. Bedienungshilfen-Kurzbefehle oder schnellen Benutzerwechsel.

Wenn du versuchst, den Prozess mit kill -9 20931 zu beenden, mach dir keine Muehe – er startet sofort neu.

Es gibt zwei Optionen:

  1. Verwende einen anderen Port fuer deine Anwendung.
  2. Grab etwas tiefer und finde eine bestimmte Einstellung.

Ich waehlte die zweite Option und fand die Loesung in Apples Developer Forum.

Unter “Systemeinstellungen” waehle “Freigaben”

In der Liste links gibt es eine Option “AirPlay-Empfaenger”.

Deaktiviere sie.

Das war’s. Starte jetzt deine Anwendung, die Port 5000 verwendet, und alles sollte reibungslos funktionieren.

Natuerlich gilt diese Loesung nur, wenn du den AirPlay-Empfaenger nicht benoetigst.

Was ist ein AirPlay-Empfaenger, fragst du? Es ist eine neue Funktion in macOS Monterey. Hier ist eine kurze Erklaerung von Apples Website:

Aktivieren Sie den AirPlay-Empfaenger, um Video- und Audioinhalte von jedem Mac, iPhone oder iPad in der Naehe im selben Netzwerk zu empfangen.

Dies ist tatsaechlich eine Funktion, die ich mir schon lange gewuenscht habe, und Apple liefert sie endlich mit dem neuen Betriebssystem.

Hoffentlich hat dir dieser Beitrag etwas Zeit beim Debuggen und Finden der richtigen Loesung gespart.

Vielen Dank fuers Lesen!

Ressourcen