Aller au contenu principal
Dev Serein
Retour aux solutions
DevOpsDébutant

Résoudre EADDRINUSE : trouver et libérer un port

Identifier le processus qui utilise un port local et l’arrêter sur macOS, Linux ou Windows.

Le port demandé est déjà occupé. Remplacez 3000 par votre port TCP ; si vous reconnaissez le serveur dans un terminal ouvert, arrêtez-le d’abord avec Ctrl+C.

macOS et Linux

Sous Linux, installez lsof si la commande est absente. Dans un terminal macOS ou Linux, identifiez le processus qui écoute sur le port TCP 3000 :

lsof -nP -iTCP:3000 -sTCP:LISTEN

Exemple de sortie :

COMMAND   PID   USER   FD   TYPE   DEVICE   NODE   NAME
node      48231 user   23u  IPv6            TCP    *:3000 (LISTEN)

La colonne PID contient l’identifiant du processus.

Le PID 48231 est un exemple. Vérifiez le programme avec ps -p 48231 -o pid,ppid,user,command, en remplaçant le PID par celui trouvé. Les processus d’autres utilisateurs peuvent nécessiter des droits supplémentaires.

Pour arrêter proprement le processus :

kill 48231

Si le processus refuse de s’arrêter, revérifiez son PID avant de forcer son arrêt :

kill -9 48231

kill -9 doit rester une solution de dernier recours, car le processus est arrêté immédiatement sans pouvoir effectuer son nettoyage habituel.

Windows

Dans PowerShell ou l’invite de commandes Windows (hors WSL), recherchez le port 3000 :

netstat -ano | findstr :3000

Vérifiez que l’adresse locale se termine exactement par :3000 et que la ligne correspond à un port en écoute (LISTENING). La recherche peut aussi afficher des ports comme 30000 ou des connexions distantes. Le PID apparaît dans la dernière colonne.

Pour identifier l’application correspondant à ce PID :

tasklist /FI "PID eq 48231"

Fermez d’abord le serveur avec Ctrl+C dans son terminal, ou quittez normalement l’application. Si cela ne suffit pas, essayez :

taskkill /PID 48231

En dernier recours, forcez l’arrêt (les données non enregistrées peuvent être perdues) :

taskkill /PID 48231 /F

Remplacez 48231 par le PID trouvé précédemment. Dans WSL, utilisez les commandes Linux pour les processus Linux ; vérifiez aussi Windows si aucun processus WSL n’explique le conflit.

Si le processus revient immédiatement

Un gestionnaire de services, un watcher ou Docker peut le relancer. Arrêtez le service avec l’outil qui le gère. Si Docker est installé, vérifiez ses ports publiés :

docker ps --format "table {{.Names}}\t{{.Ports}}"

Identifiez le conteneur concerné et consultez Port Docker déjà alloué. Un processus Docker peut porter le port à la place de votre application.

Garder les deux applications

Si l’autre programme est utile, changez le port du serveur de développement. Pour un script dev qui lance Vite, par exemple :

npm run dev -- --port 3001 --strictPort

Les options varient selon le serveur. Mettez aussi à jour les URL du frontend, les proxys, les origines CORS ou les URL de retour d’authentification qui dépendent de ce port.

Vérifier le résultat

Relancez le diagnostic de votre système, puis votre serveur de développement. Si le port est encore occupé, vérifiez si un service redémarre automatiquement le processus.

Si le diagnostic ne montre rien, vérifiez le port exact, IPv4 et IPv6, ainsi que les droits nécessaires pour voir le processus. Sous Windows, un port réservé peut produire une erreur d’accès plutôt qu’un conflit visible.

Ressources

SUPER CALCULATEUR / CONNEXION ÉTABLIE

UN PASSAGE SECRET DANS DEV SEREIN

Bienvenue sur
Code Lyoko.

Le monde virtuel n’était qu’à quelques lettres.
Jérémie a ouvert la connexion. À toi de jouer.

Des arbres infinis, des chemins suspendus. Garde un œil sur la mer numérique.

LYOKO-GUERRIERS

Aelita · Yumi · Ulrich · Odd

SCAN DU TERRITOIREFORÊT / 01

ALERTE XANA · TOUR ACTIVÉE

On compte sur toi, Aelita.