اذهب إلى المحتوى

السؤال

نشر

لقد قمت سابقاً بتشغيل الخادم node.js على جهازي من خلال محرر الأكواد على منفذ معيّن. والآن أحاول التشغيل من جديد ويظهر لي الخطأ التالي:

events.js:71
    throw arguments[1];
                   ^
Error: listen EADDRINUSE
    at errnoException (net.js:770:11)
    at HTTPServer.Server._listen2 (net.js:910:14)
    at listen (net.js:937:10)
    at HTTPServer.Server.listen (net.js:986:5)
    at Object.<anonymous> (C:\xampp\htdocs\node\chat\app.js:5:5)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)

كيف يمكنني التأكد مما إذا كان هنالك أي عملية تابعة ل node.js قيد التشغيل وما هو المنفذ الذي تعمل عليه؟ وأيضاً كيف يمكنني إنهاء هذه العمليات التي تشغل هذه المنافذ في ويندوز؟

Recommended Posts

  • 1
نشر

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

taskkill /f /im node.exe

الأمر السابق سوف يقوم بإنهاء كل العمليات التي تسمى node.exe ، والعلم /f يستخدم لإجبار كل العمليات على التوقف وهو إختياري فقط.

أما إن كنت تريد إيقاف عملية node server يعمل على منفذ معين مثل 8000 فيمكنك أن تقوم بعرض كل العمليات التي تستمع إلى هذا المنفذ من خلال الأمر التالي:

netstat -ano | find "LISTENING" | find "8000"

بعد ذلك سوف تظهر كل العمليات التي تستخدم هذا المنفذ مع معرف العملية process ID والذي يمكنك أن تستخدمه لإيقاف عملية معينة من خلال الأمر التالي:

taskkill /pid <معرف العملية>

taskkill /pid 14828

 

  • 0
نشر

في نظام وندوز

يمكنك تنفيذ الأمر التالي لإنهاء جميع عمليات node التي تكون قيد التشغيل

taskkill /im node.exe

اما إذا بقي هناك بعض العمليات قيد التشغيل فيمكنك إضافة f لإجبار الإغلاق كالآتي

taskkill /f /im node.exe

في نظام ماك

العملية مشابهة للسابقة حيث يمكنك إنهاء جميع عمليات Node التي تكون قيد التشغيل عبر تنفيذ هذا الأمر

killall node

أو يمكنك إستخدام lsof للعثور على PID الخاص بالعمليات التي تستمع الى منفذ معين كما في المثال

$ lsof -Pi :8080
COMMAND   PID      USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node     1073    urname   22u  IPv6  bunchanumbershere      0t0  TCP *:8080 (LISTEN)

والآن يمكنك إنهاء العملية 1073 الخاصة ب node كالآتي

$ kill 1073

اما إذا العملية رفضت الإغلاق فيمكنك إضافة 9- لفرض الإغلاق

$ kill -9 1073

في نظام لينكس

وهنا ايضاً العملية مشابهة للسابقة ، لإنهاء جميع عمليات Node

killall node

أو يمكنك إستخدام netstat للبحث عن العملية التي تستمع الى منفذ معين

$ netstat -nlp | grep :8080
tcp        0    0 0.0.0.0:8080     0.0.0.0:*     LISTEN    1073/node

ومن ثم إنهائها كالآتي

$ kill 1073

اما إذا رفضت الإغلاق ، فيمكنك فرض الإغلاق هكذا

$ kill -9 1073

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...