المطورون

المنفذ قيد الاستخدام بالفعل على Mac

يمكن لعملية واحدة فقط الاستماع على منفذ TCP وعنوان معينين. يتوقف الخادم الثاني عندئذ مع رسالة «العنوان مستخدم بالفعل».

ينطبق على: جميع إصدارات macOS الحالية.تاريخ التحقق: 29 أكتوبر 2026

الأعراض

  • يتوقف خادم تطوير مع ظهور «EADDRINUSE» أو «address already in use».
  • يتعذر على Docker نشر منفذ لأن «port is already allocated».
  • كان المنفذ متاحًا قبل تعطل المحرر أو إعادة تشغيله.

الأسباب المحتملة

  • نسخة قديمة من خادمك. لا يزال خادم من تشغيل سابق يعمل في الخلفية.
  • تطبيق آخر. يستخدم تطبيق آخر المنفذ نفسه. في macOS 12 والإصدارات الأحدث، يستخدم مستقبِل AirPlay المنفذين 5000 و7000.
  • حاوية. تنشر حاوية قيد التشغيل المنفذ نفسه على Mac.

كيفية التحقق

  1. ابحث عن العملية التي تستمع على المنفذ. استبدل 3000 بمنفذك.

    lsof -nP -iTCP:3000 -sTCP:LISTEN

    النتيجة يحدد العمودان COMMAND وPID العملية.

  2. لعرض عمليات المستخدمين الآخرين، شغّل الأمر نفسه باستخدام sudo.

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

    يتطلب كلمة سر مسؤول.

  3. اعرض مزيدًا من المعلومات عن العملية.

    ps -p 12345 -o pid,command
  4. ابحث عن الحاويات التي تنشر المنفذ.

    docker ps

كيفية الإصلاح

  1. إذا كانت العملية تخصك، فأوقفها في نافذة Terminal الخاصة بها باستخدام Control-C.

  2. وإلا فأرسل إليها إشارة الإنهاء. استخدم PID الخاص بها.

    kill 12345
  3. إذا لم تتوقف، فاستخدم kill -9. لن تتمكن العملية من حفظ بياناتها.

  4. إذا كانت العملية تابعة لـ macOS، فلا توقفها. اختر منفذًا آخر لخادمك.

  5. إذا كان المنفذ 5000 أو 7000، فاقرأ المنفذ 5000 أو 7000 مستخدم على Mac: مستقبِل AirPlay.

باستخدام Kilobat

  1. اعرض المقابس المفتوحة لعملية واحدة.

    kilobat destinations --pid 12345
  2. أنهِ عملية باستخدام PID. أضف --force فقط إذا لم تتوقف.

    kilobat quit 12345

الأسئلة

لماذا لا يعرض lsof شيئًا رغم أن المنفذ مستخدم؟

يعرض lsof العمليات التي يمكنك فحصها فقط. شغّله باستخدام sudo لرؤية جميع العمليات.

ما وظيفة -n و-P؟

يمنعان lsof من تحويل العناوين إلى أسماء والمنافذ إلى أسماء خدمات. تظهر النتيجة أسرع وبالأرقام.

المصادر

تم التحقق في 29 أكتوبر 2026.