SSS · "port already in use / adres kullanımda" hatası nasıl çözülür?

Yeni başlayanların çok sık karşılaştığı bir durum, SSS olarak ekliyoruz.

Uygulamamı başlatırken şu hatayı alıyorum:

Error: listen EADDRINUSE: address already in use :::3000

Daha önce aynı uygulamayı çalıştırmıştım, kapattım sandım. Portu nasıl boşaltırım?

Bu hata, 3000 portunu başka bir süreç hâlâ kullanıyor demektir. Çoğu zaman düzgün kapanmamış eski bir çalıştırmadır. İki yol var:

1. Portu kullanan süreci bul ve kapat

Linux / macOS:

lsof -i :3000          # portu kim kullanıyor (PID'yi gör)
kill <PID>             # nazikçe kapat
kill -9 <PID>          # inat ederse zorla

Windows (PowerShell):

netstat -ano | findstr :3000     # en sağdaki sayı PID'dir
taskkill /PID <PID> /F

2. Ya da uygulamayı farklı bir portta başlat

PORT=3001 npm start

İpuçları:

  • VS Code’da terminali kapatmadan Ctrl+C yapmadıysan, süreç arka planda kalmış olabilir.
  • Docker kullanıyorsan port eşlemesini (-p 3000:3000) kontrol et; birden fazla konteyner aynı portu isteyemez.
  • Sürekli oluyorsa, uygulamanı kapatırken Ctrl+C ile düzgün kapatmayı alışkanlık edin.

lsof -i :3000 ile buldum, eski bir node süreci takılı kalmış. kill ile çözüldü, teşekkürler!