Développeurs

Port déjà utilisé sur un Mac

Un seul processus peut écouter sur un même port et une même adresse TCP. Un second serveur s’arrête alors avec « address already in use ».

S’applique à : toutes les versions actuelles de macOS.Vérifié le 29 octobre 2026

Symptômes

  • Un serveur de développement s’arrête avec « EADDRINUSE » ou « address already in use ».
  • Docker ne peut pas publier un port parce que « port is already allocated ».
  • Le port était libre avant un plantage ou un redémarrage de votre éditeur.

Causes probables

  • Une ancienne copie de votre serveur. Un serveur lancé lors d’une exécution précédente tourne encore en arrière-plan.
  • Une autre app. Une autre app utilise le même port. Sur macOS 12 et versions ultérieures, Récepteur AirPlay utilise les ports 5000 et 7000.
  • Un conteneur. Un conteneur en cours d’exécution publie le même port sur le Mac.

Comment vérifier

  1. Trouvez le processus qui écoute sur le port. Remplacez 3000 par votre port.

    lsof -nP -iTCP:3000 -sTCP:LISTEN

    Résultat Les colonnes COMMAND et PID indiquent le processus.

  2. Pour voir les processus des autres utilisateurs, lancez la même commande avec sudo.

    sudo lsof -nP -iTCP:3000 -sTCP:LISTEN

    Nécessite un mot de passe administrateur.

  3. Affichez plus d’informations sur le processus.

    ps -p 12345 -o pid,command
  4. Cherchez les conteneurs qui publient le port.

    docker ps

Comment corriger

  1. Si le processus est le vôtre, arrêtez-le dans sa propre fenêtre de Terminal avec Contrôle-C.

  2. Sinon, envoyez-lui le signal de fin (terminate). Utilisez son PID.

    kill 12345
  3. S’il ne s’arrête pas, utilisez kill -9. Le processus ne peut alors pas enregistrer ses données.

  4. Si le processus appartient à macOS, ne l’arrêtez pas. Choisissez un autre port pour votre serveur.

  5. Si le port est 5000 ou 7000, lisez Port 5000 ou 7000 utilisé sur un Mac : Récepteur AirPlay.

Avec Kilobat

  1. Listez les sockets ouverts d’un processus.

    kilobat destinations --pid 12345
  2. Quittez un processus par son PID. N’ajoutez --force que s’il ne s’arrête pas.

    kilobat quit 12345

Questions

Pourquoi lsof n’affiche-t-il rien alors que le port est utilisé ?

lsof n’affiche que les processus que vous avez le droit d’examiner. Lancez-le avec sudo pour voir tous les processus.

À quoi servent -n et -P ?

Ils empêchent lsof de convertir les adresses en noms et les ports en noms de service. La sortie est plus rapide et affiche des numéros.

Sources

Sources vérifiées le 29 octobre 2026. Les pages man sont celles installées avec macOS ; ouvrez-en une avec man <name> dans Terminal.