العودة إلى Volumora

دليل للمطورين على Mac

كيف تعرف ما الذي يستخدم منفذًا في Mac وتوقفه بأمان

آخر تحديث: 2026-09-28

عندما يخبرك خادم التطوير بأن المنفذ مستخدم، تحقق من العملية أولًا. يعرض lsof في macOS العمليات التي تستمع إلى منفذ TCP ومعرّفها والأمر الذي شغّلها غالبًا. بعد ذلك اختر إغلاق التطبيق بالطريقة المعتادة أو إرسال إشارة إيقاف تدريجية.

نزّل Volumoraتحليل محلي، بلا رفع للملفات
1

اعثر على العملية التي تستمع إلى المنفذ

استبدل 3000 برقم المنفذ الوارد في رسالة الخطأ. يعرض الأمر مقابس TCP التي تستمع. لا يغيّر العملية ولا يوقفها.

فحص منفذ TCP 3000

lsof -nP -iTCP:3000 -sTCP:LISTEN

فحص منفذ آخر

lsof -nP -iTCP:5173 -sTCP:LISTEN
  • COMMAND هو اسم العملية، وPID هو معرّفها.
  • إذا ظهرت عدة أسطر، تحقق من كل معرّف وأمر قبل أي إجراء.
  • إذا لم تظهر نتائج، تحقق من رقم المنفذ وما إذا كان التطبيق يستخدم UDP بدل TCP.
2

تحقق مما شغّل العملية

لا يكفي معرّف العملية وحده لاتخاذ قرار إيقافها. راجع الأمر واسم المستخدم في نتيجة lsof. يعرض ps تفاصيل الأمر؛ وقد يكشف اسم البرنامج المشروع الذي يشغّل الخادم.

عرض تفاصيل العملية

ps -p 12345 -o pid=,ppid=,user=,command=
  • استبدل 12345 بمعرّف PID الذي ظهر في lsof.
  • تحقق مما إذا كانت نافذة الطرفية التي تشغّل الخادم ما زالت مفتوحة.
  • قد يكون المنفذ مستخدمًا من خادم آخر أو محاكي أو حاوية أو تطبيق يحتاج إليه.
3

أوقفه تدريجيًا أولًا

إذا كان خادم التطوير لك، انتقل إلى نافذة الطرفية التي تشغّله واضغط Control-C ليغلق طبيعيًا. إذا لم تعد النافذة موجودة، أرسل SIGTERM إلى معرّف العملية المحدد بعد التأكد من هويتها.

طلب إيقاف طبيعي

kill -TERM 12345

التحقق من بقاء العملية

ps -p 12345 -o pid=,command=
  • استبدل 12345 بمعرّف PID المؤكد.
  • انتظر قليلًا ثم أعد فحص المنفذ باستخدام lsof.
  • إذا ظهرت Operation not permitted، فلا تستخدم sudo تلقائيًا؛ تحقق من مالك العملية والحساب الذي شغّلها.
4

استخدم الإيقاف القسري كحل أخير

لا تستطيع العملية اعتراض SIGKILL لإتمام التنظيف المعتاد. إذا بقيت عملية تخصك عالقة بعد الإيقاف التدريجي، تحقق من PID مجددًا ثم فكّر في SIGKILL. تجنب أوامر عامة مثل killall node لأنها قد توقف مشاريع وأدوات أخرى.

حل أخير لمعرّف تم التحقق منه

kill -KILL 12345
5

تحقق من خلو المنفذ ثم أعد التشغيل

أعد أمر الفحص. إذا لم تظهر نتيجة، فلم يجد lsof مستمع TCP على المنفذ حينها. شغّل مشروعك من مجلده المعتاد. إذا عاد الخطأ، فقد تستولي عملية أخرى على المنفذ أو يستخدم التطبيق إعدادًا مختلفًا.

التحقق من المنفذ 3000

lsof -nP -iTCP:3000 -sTCP:LISTEN
  • تحقق مما إذا ظهر PID جديد.
  • راجع إعداد المنفذ ومتغير PORT في إطار العمل.
  • استخدم طريقة تغيير المنفذ الموثقة بدل تكرار إيقاف العمليات.
6

لماذا يظهر خطأ EADDRINUSE؟

يعني الخطأ أن العنوان المطلوب مستخدم حين حاول التطبيق بدء الاستماع. قد يكون السبب خادم تطوير سابقًا أو تطبيقًا آخر. لا تعني الرسالة أن إنهاء العملية الموجودة آمن؛ افحص هويتها أولًا.

7

تابع الخوادم بحسب المشروع

إذا كنت تنسى خوادم التطوير المحلية باستمرار، تجمع شاشة Projects في Volumora الخوادم المكتشفة بحسب مجلد المشروع، وتعرض المنافذ واستهلاك الذاكرة وتحدد العمليات الخاملة. تراجع العملية وتؤكد قبل إيقافها.

تعرّف على Projects في Volumora
8

راجع الأدلة المضمنة في macOS

قد تختلف الخيارات بين الأنظمة. تشرح صفحات الدليل المضمنة في جهازك إصدارات lsof وkill وps المثبتة لديك.

خيارات lsof

man lsof

إشارات kill

man kill

تفاصيل العمليات

man ps

أسئلة شائعة

هل إيقاف عملية تستخدم المنفذ 3000 آمن؟

بعد تحديد هويتها والتأكد من أنها خادم تريد إيقافه فقط. أغلق خادمك عبر Control-C متى أمكن.

لماذا يعرض lsof أكثر من سطر؟

قد يكون للعملية أكثر من مقبس مطابق أو عائلة عناوين مختلفة. قارن PID والأمر ولا تفترض أن كل سطر لتطبيق مختلف.

هل أستخدم مراقب النشاط لمعرفة المنفذ؟

يساعد مراقب النشاط على فحص التطبيقات وإغلاقها، لكن lsof هو الطريقة المباشرة لربط منفذ TCP مستمع بعملية.

ماذا لو لم يعرض lsof أي نتيجة؟

تحقق من رقم المنفذ وأن الخادم ما زال يعمل، ومن أنه يستخدم TCP. قد يصبح المنفذ متاحًا بين ظهور الخطأ وفحصه.