নোড / এক্সপ্রেস: EADDRINUSE, ঠিকানা ইতিমধ্যে ব্যবহৃত - কিল সার্ভার


442

আমার সংযোগটি ব্যবহার করে নোড.জেজে চালিত একটি সাধারণ সার্ভার রয়েছে:

var server = require('connect').createServer();
//actions...
server.listen(3000);

আমার কোডে আমার কাছে আসল হ্যান্ডলার রয়েছে তবে এটি প্রাথমিক ধারণাটি সমর্থন করে। আমার যে সমস্যাটি হচ্ছে তা হচ্ছে

EADDRINUSE, Address already in use

আমার অ্যাপ্লিকেশনটি এর আগে ক্রাশ হওয়ার পরে বা ত্রুটির পরে আবার চালানোর সময় আমি এই ত্রুটিটি পেয়েছি। যেহেতু আমি টার্মিনালের কোনও নতুন উদাহরণ খুলছি না তাই আমি প্রক্রিয়াটি বন্ধ করে দিই ctr + z

আমি মোটামুটি নিশ্চিত যে আমাকে যা করতে হবে তা হ'ল সার্ভার বা সংযোগটি বন্ধ করে দেওয়া। আমি ফোন করার চেষ্টা করেছিserver.close() মধ্যে process.on('exit', ...);কোন ভাগ্য সঙ্গে।


39
আসলে, আপনার পরিবর্তে Ctrl + zআপনার ব্যবহার করা উচিত Ctrl + cযা প্রোগ্রামটি সঠিকভাবে বন্ধ করে সিকুইভিটি প্রেরণ করে :) আরও তথ্যের জন্য উইকি দেখুন :)
nacho4d

1
আপনি সাইন ইন মানে। SIGQUIT `ctrl + \ to এর কারণে
Xedecimal

53
ইউএনআইএক্স-এর মতো ওএসে চেষ্টা করুন pkill nodejsবা করুনpkill node
জেরার্ড

1
আমার অনুরূপ সমস্যা ছিল এবং এই প্যাকেজটি খুঁজে পেয়েছি যা আপনি সিটিআরএল + সি: npmjs.com/package/exit-hook
জাজি

1
1. মনে হচ্ছে বন্দরে কোনও ঝোলা বা ডেড প্রক্রিয়া আইডি রয়েছে, সুতরাং নোড ভিত্তিক পরিষেবাটি আরম্ভ করা হচ্ছে না এবং ত্রুটি ছুঁড়ছে না পোর্ট ইন ইউএস (ব্যবহারের ত্রুটিযুক্ত ঠিকানা) ২. আমরা কীভাবে মুক্তি দিতে হবে তা জানার চেষ্টা করছি সার্ভারটি রিবুট না করে 10000 পোর্ট।
অবশর্ম

উত্তর:


146

process.on('exit', ..)প্রক্রিয়াটি ক্রাশ হয়ে গেলে বা মারা গেলে তাকে বলা হয় না। ইভেন্ট লুপটি শেষ হয়ে গেলেই এটি ডাকা হয় এবং যেহেতু server.close() ধরণের ঘটনা লুপ শেষ হয় (এটি এখনও এখানে এবং সেখানে স্ট্যাকগুলি চলার জন্য অপেক্ষা করতে হবে) এটি প্রস্থান ইভেন্টের ভিতরে রাখার কোনও মানে হয় না ...

ক্র্যাশ, কর process.on('uncaughtException', ..)এবং মেরে করprocess.on('SIGTERM', ..)

বলা হচ্ছে, সিগন্টারম (ডিফল্ট কিল সিগন্যাল) অ্যাপ্লিকেশনটিকে পরিষ্কার করতে দেয়, যখন সিগ্কিল (তাত্ক্ষণিক সমাপ্তি) অ্যাপ্লিকেশনটিকে কিছু করতে দেয় না।



487

আপনি কমান্ড লাইন রুটে যেতে পারেন:

ps aux | grep node

প্রক্রিয়া আইডি পেতে।

তারপর:

kill -9 PID

হত্যার পরে -9 করা একটি সিগ্কিল প্রেরণ করে (একটি সিগমেন্টের পরিবর্তে)। কখনও কখনও আমার জন্য নোড দ্বারা সিগন্টর এড়ানো হয়।


1
ps aux | grep nodeকিছুই দেখায় না; এখনও textareaserver --editor-cmd='gvim -f'ব্যর্থ: 14 মার্চ 21:19:30 - সকেট.আইও প্রস্তুত - সংযোগ গ্রহণ করা এখন সার্ভারটি শুরু করতে পারে: EADDRINUSE, ঠিকানা ইতিমধ্যে ব্যবহৃত
জিন জর্দান

75
এর চেয়ে কেনkillall -9 node
মার্টিন জোসেফসন

1
pidofখুব সহজ
JVE999

25
আমি এই উত্তরটি দীর্ঘদিন ব্যবহার করেছি, তারপরে একদিন এটি সুবিধার জন্য এটি একটি লাইনারে রচনা করে .. এই আদেশটি প্রদত্ত বন্দরে চলমান যে কোনও প্রক্রিয়া (এই উদাহরণে 8000) মেরে ফেলবে: lsof -n -i4TCP:8000 | grep LISTEN | tr -s ' ' | cut -f 2 -d ' ' | xargs kill -9
লুকেজ্যাকসনসন

1
আমার একসাথে একাধিক নোড সার্ভার চলছিল, তাদের মধ্যে কয়েকটি ইলেক্ট্রন অ্যাপ্লিকেশন। আমার killপরিবর্তে নির্দিষ্ট প্রসেস আইডি ব্যবহার করতে হয়েছিল killall
tulioir

226

প্রথমে আপনি জানতে চান কোন প্রক্রিয়াটি ব্যবহার করছে want port 3000

sudo lsof -i :3000

এটি এই পোর্টটিতে সমস্ত পিআইডি শোনার তালিকা তৈরি করবে , একবার আপনার পিআইডি হয়ে গেলে আপনি নীচের মাধ্যমে এটি বন্ধ করতে পারেন:

kill -9 {PID}

17
এই কমান্ডটি পরিষ্কারভাবে ps aux | grep nodeআমার জন্য আউটপুট থেকে পৃথক পিআইডি সনাক্ত করে । আমারও দরকার নেইsudo
ফিল গিবিনস

এটি সেরা উত্তর। সুতোর সাথে নেটিভ রিটিভ ব্যবহার করে 8081 বন্দরটি দিয়ে আমার পক্ষে কাজ করে।
ফার্নান্দো বার্বোসা

এটি আমার জন্য কাজ করে মহান। আমি 3000 বন্দরটি কোথায় ব্যবহৃত হয়েছিল তা সনাক্ত করতে পেরেছি এবং তাই এটি বন্ধ করে দিতে পারি। আমারও দরকার হয়নি sudo
ক্যাম্পালো

খুব ভাল. আমি কমান্ডটি পাওয়ার পরেও চেষ্টা করেছি killall -9 {COMMAND}যেমনkillall -9 node
স্ট্রিট মানি

বাহ এটি আমার পক্ষে কাজ করেছিল
আনুপ পিএস

162

আমি আমার ল্যাপটপে এটি চালাচ্ছি উইন 8। এই কাজ।

Cmd.exe কে 'প্রশাসক' হিসাবে চালান:

C:\Windows\System32>taskkill /F /IM node.exe
SUCCESS: The process "node.exe" with PID 11008 has been terminated.

আমি কমান্ড উইন্ডো থেকে এটি চালাচ্ছিলাম এবং এটি দুর্ঘটনাক্রমে বন্ধ করেছিলাম। নোড পিছনের মাঠে দৌড়তে থাকে ... (অধিবেশন শেষ হওয়ার পরেও)। আমার ক্ষেত্রে একবার আমি ব্রাউজার ট্যাবটি এটি বন্ধ করে দিয়েছিলাম যা ওয়েব সকেটের মাধ্যমে এটির সাথে সংযুক্ত ছিল এটি শেষ পর্যন্ত বন্ধ হয়েছিল।
বার্টাস ক্রুগার

6
taskkill /F /IM node.exeযে কোনও ডিরেক্টরি থেকে উইন্ডোজে আমার জন্য আকর্ষণীয় কাজ করে :-) শেয়ারের জন্য ধন্যবাদ !!
মার্টি ম্যাকগি

2
এটি উইন্ডোজের জন্য যাচাই করতে সক্ষম হয়েছি এমন একমাত্র লাইন কাজের সমাধান
কোড হুইস্পেরার

4
উইন্ডোজ 10 এ কাজ করে I অ্যাডমিন বিটিডব্লিউ হিসাবে আমাকে cmd.exe চালাতে হবে না।
গ্লেন ওয়ার্নার

74

নীচের কমান্ড সহ 3000 পোর্টে চলমান পিআইডি অর্থাৎ আইডি পরীক্ষা করুন:

lsof -i tcp:3000

এটি নিম্নলিখিত মত কিছু আউটপুট হবে:

COMMAND  PID   USER   FD   TYPE  DEVICE  SIZE/OFF NODE NAME
node     5805  xyz    12u  IPv6  63135    0t0     TCP  *:3000 (LISTEN)

এখন এই প্রক্রিয়াটি ব্যবহার করে হত্যা করুন:

kill -9 5805

এসএলএস অফলাইন প্লাগইন ব্যবহার করার সময় এটি আমার পক্ষে কাজ করেছিল।
জুনেদ আতিক

এর জন্য ধন্যবাদ! আমি কয়েক ঘন্টা আগে যেমন প্রতিক্রিয়া শিখতে শুরু করেছি। :) সার্ভারটি বন্ধ করার পরে, আমি আবার এটিকে চালিয়েছি, কেবল এই জাতীয় ত্রুটিগুলির সম্মুখীন হওয়ার জন্য।
গ্লেন

আমি হারানো ব্যবহার করলে কোনও আউটপুট পাই না। এর অর্থ কি এই অংশে কোনও প্রক্রিয়া নেই?
x89

42

আমি এই সমাধানটি পেয়েছি, চেষ্টা করুন অনুমতি ব্যবহার করুন sudo

  sudo pkill node

আমি এখনও এই কমান্ডের সাথে নোড প্রক্রিয়াটি দেখতে পাচ্ছি:ps aux | grep node
ইগোরগানাপলস্কি

29

লিনাক্স

psআপনার নোড প্রক্রিয়াটির পিআইডি চালান এবং নির্ধারণ করুন।

তারপর, চালান sudo kill PID

উইন্ডোজ

চলমান প্রক্রিয়াগুলির তালিকা প্রদর্শন করতে টাস্কলিস্টটি ব্যবহার করুন:

tasklist /O

তারপরে, নোড প্রক্রিয়াটিকে এভাবে মুছে ফেলুন ( tasklistকমান্ড থেকে প্রাপ্ত পিআইডি ব্যবহার করে ):

taskkill /pid PID

1
আর যদি উইন্ডোজে থাকে?
ট্রেভর

1
ঠিক যেমন একটি নোট ... কোনও কারণে আমাকে গিট-ব্যাশ থেকে টাস্কিল কমান্ডের জন্য আমার পতাকাগুলিতে ডাবল স্ল্যাশ ব্যবহার করতে হয়েছিল: taskkill //IM node.exe এবং আমি সবেমাত্র নোডটি মেরেছি। কাজ করছে.
নবলবার্গস

23

এখানে একটি ওলাইনার (একটি পোর্ট বা একটি কনফিগার ভেরিয়েবলের সাথে 3000 প্রতিস্থাপন করুন):

kill $(lsof -t -i:3000)

20

আমি এই ত্রুটিটি একবার পেয়েছিলাম এবং এখানে অনেকগুলি পন্থা নিয়েছি।

আমার সমস্যাগুলি হ'ল app.listen(3000);একই অ্যাপ.জেএস স্ক্রিপ্টে আমার দুটি কল ছিল । প্রথম অ্যাপ্লিকেশন () সফল হয়েছে যেখানে দ্বিতীয়টি ত্রুটি ফেলেছিল।

আমি আর একটি দরকারী কমান্ড পেয়েছি sudo fuser -k 3000/tcpযা আমাকে ডিবাগ করতে সহায়তা করেছিল এটি হ'ল যা আপনি শুরু করেছেন এমন কোনও দুর্বৃত্ত প্রসেসকে মেরে ফেলবে (কিছু প্রক্রিয়া পুনরায় আরম্ভ হতে পারে, উদাহরণস্বরূপ যদি চিরদিনের সাথে চালানো হয় তবে এটি আমার পক্ষে কার্যকর ছিল)।


এখানে একই সমস্যা ... অদ্ভুত যে দৌড়ানোর জন্য এই ত্রুটিটি পাওয়ার সময় এটি সঠিকভাবে ডিবাগিংয়ে কাজ করছিলnpm start
আসকান

16

উইন্ডোজের জন্য টাস্ক ম্যানেজার খুলুন এবং নোড.এক্সই প্রক্রিয়াগুলি সন্ধান করুন। এন্ড টাস্কের সাহায্যে তাদের সকলকে হত্যা করুন।

এখানে চিত্র বর্ণনা লিখুন


1
উইন্ডোজ ব্যবহারকারীদের জন্য এত সহজ এবং অ জটিল
মোমল

এটা কাজ করে। ধন্যবাদ
নাজাঠি

14
ps aux | grep node
kill -9 [PID] (provided by above command)

বর্ণনা:


  1. পিএস প্রক্রিয়াটির স্থিতি দেবে, অক্স একটি তালিকা সরবরাহ করবে: সমস্ত ব্যবহারকারীর প্রক্রিয়া, ইউ: ব্যবহারকারীর নিজস্ব প্রক্রিয়া, এক্স: অন্যান্য সমস্ত প্রক্রিয়া টার্মিনালের সাথে সংযুক্ত নয়।
  2. পাইপ প্রতীক: | আরও কারসাজি করতে পিএস অক্সের ফলাফলটি পাস করবে।
  3. গ্রেপ পিএস অক্সের দেওয়া তালিকা থেকে সরবরাহ করা স্ট্রিং (আমাদের ক্ষেত্রে নোড) অনুসন্ধান করবে।

12

এফওয়াইআই, আপনি একটি কমান্ডে প্রক্রিয়াটি হত্যা করতে পারেন sudo fuser -k 3000/tcp। এটি অন্যান্য সমস্ত বন্দর যেমন 8000, 8080 বা 9000 এর জন্য করা যেতে পারে যা সাধারণত উন্নয়নের জন্য ব্যবহৃত হয়।


12

পাওয়ারশেল ব্যবহারকারী:

টাস্ক্কিল / আইএম নোড.এক্সে / এফ


11

প্রথমে কী ব্যবহার করে চলছে তা সন্ধান করুন:

sudo lsof -nP -i4TCP:3000 | grep LISTEN

আপনি কিছু পাবেন:

php-fpm 110 root    6u  IPv4 0x110e2ba1cc64b26d      0t0  TCP 127.0.0.1:3000 (LISTEN)
php-fpm 274 _www    0u  IPv4 0x110e2ba1cc64b26d      0t0  TCP 127.0.0.1:3000 (LISTEN)
php-fpm 275 _www    0u  IPv4 0x110e2ba1cc64b26d      0t0  TCP 127.0.0.1:3000 (LISTEN)

তারপরে আপনি প্রক্রিয়াটি নিম্নলিখিত হিসাবে মারা যেতে পারেন:

sudo kill 110

তারপরে আপনি শ্রবণ EADDRINUSE ::: 3000 ত্রুটি না পেয়ে চালাতে সক্ষম হবেন


আমি নোডমন ব্যবহার করছি এবং এটি পরিষেবাটি আবার চালু করে। তাদের নোডেমনকে মেরে ফেলার কোনও উপায় কি?
স্মিট প্যাটেল

10

আমার মতো ভিজ্যুয়াল স্টুডিও নুবসের জন্য

আপনি অন্যান্য টার্মিনাল মধ্যে প্রক্রিয়া চলমান হতে পারে!

ভিজ্যুয়াল স্টুডিওতে টার্মিনালটি বন্ধ করার পরে , টার্মিনালটি কেবল অদৃশ্য হয়ে যায়

পূর্ববর্তীটি ধ্বংস হয়ে গেছে এমন ভেবে আমি ম্যানুয়ালি একটি নতুন তৈরি করেছি । বাস্তবে, প্রত্যেক সময় আমি এ ক্লিক করেন নতুন টার্মিনাল আমি আসলে ছিল তৈরি একটি নতুন এক পূর্ববর্তী বেশী উপরে

সুতরাং আমি প্রথম টার্মিনালটি এবং ... ভোইলা, আমি সেখানে সার্ভার চালাচ্ছি।

একাধিক টার্মিনাল এটি উপলব্ধি করে না


1
ওহ হ্যাঁ ভাই।
জয়দীপ শীল

8

টাস্ক ম্যানেজার (ctrl + Alt + del) ->

প্রক্রিয়া ট্যাব ->

"node.exe" প্রক্রিয়াটি নির্বাচন করুন এবং "সমাপ্তি প্রক্রিয়া" টিপুন


কেন পুরো নোড প্রক্রিয়াটি মেরে ফেলছে যদি যা দেখছি কোনও নোড পোর্ট প্রক্রিয়াটি হ'ল।
জিমি ওবনিও Abor

8

আপনি এমন পরিস্থিতিতে দৌড়াতে পারেন যেখানে থ্রেড বা প্রক্রিয়াটি হত্যার পরেও অ্যাপটি শেষ হবে না (লিনাক্স এবং উইন্ডোজে আমার প্রতি একবারেই এটি ঘটে)। কখনও কখনও আপনার ইতিমধ্যে এমন একটি দৃষ্টান্ত চলতে পারে যা আপনি বন্ধ করেননি।

এই ধরণের পরিস্থিতির ফলে, আমি আমার package.json:

"scripts": {
    "stop-win": "Taskkill /IM node.exe /F",
    "stop-linux": "killall node"
},

তারপরে আমি এগুলি ব্যবহার করে কল করতে পারি:

npm run stop-win
npm run stop-Linux

আপনি চাইলে ফ্যানসিয়ার পেতে পারেন এবং এই বিএন কমান্ডগুলিকে আর্গুমেন্ট ফ্ল্যাগ দিয়ে তৈরি করতে পারেন। আপনি চেষ্টা-শৃঙ্খলা দানের মধ্যে কার্যকর করতে কমান্ড হিসাবে এগুলি যুক্ত করতে পারেন।


5

উইন্ডোজ ব্যবহারকারীদের ইন: খোলা task managerএবং ফাইল, এটা কাজ করে জরিমানা।end tasknodejs.exe


4

আপনার সার্ভার ক্রাশ / রান-টাইম-ত্রুটি থেকে রোধ করতে আপনি হট নোড ব্যবহার করতে পারেন। হট নোড স্বয়ংক্রিয়ভাবে আপনার জন্য নোডেজ অ্যাপ্লিকেশন পুনরায় চালু করবে যখনই নোড প্রোগ্রাম [উত্স] / প্রক্রিয়া [নোড প্রোগ্রাম চলমান] in

বিশ্বব্যাপী বিকল্পটি ব্যবহার করে এনপিএম ব্যবহার করে হট নোড ইনস্টল করুন:

এনপিএম ইনস্টল -জি হটনোড


pm2 একটি ভাল পছন্দ। আরও শক্তিশালী, আরও বিকল্প। চিরকাল যে রুট হিসাবে চালানো হয় তাতে সমস্যা হয় না।
লুকাস

@ লুকাস আপনি যে কথা বলছেন তা চিরতরে এই মূল সমস্যাটি কী? দুর্ভাগ্যক্রমে আমি কাজের সময় কোনও পণ্য (কিছু লাইসেন্স দেওয়ার কারণে) তে দুপুরের পরিবর্তে চিরকালের জন্য ব্যবহার করতে বাধ্য হই এবং এটি আমাকে অনেক চিন্তায় ফেলে!
জিপিএক্স

4

ফর্মের সমস্ত উত্তরগুলির যথাযথ সম্মানের সাথে আমি একটি পয়েন্ট যুক্ত করতে চাই।

আমি দেখতে পেয়েছি যে আমি যখন সিটিটিএল + জেড ব্যবহার করার সময় ত্রুটিযুক্ত কোনও নোড অ্যাপ্লিকেশনটি বন্ধ করি তখনই যখন আমি এটি খোলার চেষ্টা করি ঠিক তখনই একই ত্রুটি EADDRINUSE পেয়েছিল।

যখন আমি কোনও নোড অ্যাপ্লিকেশনটি বন্ধ করতে Ctrl + C ব্যবহার করি, পরের বার যখন আমি এটি খুলি, এটি কোনও বাধা ছাড়াই করে।

ত্রুটিযুক্ত সমস্যা ব্যতীত পোর্ট নম্বরটি অন্য কিছুতে পরিবর্তন করা সমস্যার সমাধান করেছে।


1
Ctrl + C সঠিক। আমি আগের মতো একই বন্দর নম্বর ব্যবহার করেছি এবং এটি আগের মতো কাজ করেছে।
বিপুলঞ্জ

2
<key> Ctrl-Z </key> প্রক্রিয়াটি থামায় না। এটি এটিকে পটভূমিতে রাখে যাতে আপনি অন্যান্য আদেশগুলি চালাতে পারেন। এটি একটি ইউনিক্স শেল জিনিস। fgএকই কনসোলে প্রক্রিয়াটি চালিয়ে যেতে । কমান্ড লাইনে বিভিন্ন কমান্ড টাইপ করার পরে আপনি সেই সার্ভারে কী ঘটছে তা দেখতে পাবেন।
অ্যালেক্সিস উইলকে

4

লিনাক্সে।

এতে ফাংশন যুক্ত করুন ~/.bashrc:

function killTcpListen () {
  kill -9 $(lsof -sTCP:LISTEN -i:$1 -t)
}

পরিবর্তনগুলি টানুন: source ~/.bashrc

এবং এটি ব্যবহার করুন: killTcpListen 3000


3

আপনি ভুল করে এই লাইনটি একাধিকবার যুক্ত করেছেন কিনা তা পরীক্ষা করে দেখুন

app.listen(3000, function() {
  console.log('listening on 3000')
});

উপরের কোডটি এক্সপ্রেসের জন্য তবে কেবল আপনি নিজের কোডে দু'বার একই পোর্ট ব্যবহার করার চেষ্টা করছেন কিনা তা পরীক্ষা করে দেখুন।


3

উইন 10, গিট ব্যাশ ভি 2.15, নোড ভি 8.9.1, এনপিএম ভি 5.5.1

নোড শুরু করার জন্য আমার কাছে একটি প্যাকেজ.জসন স্ক্রিপ্ট ছিল: "start": "node index.js"

আমি যখনই এটি ব্যবহার করেছি, নির্বিশেষে আমি যদি এটি সিটিআর + সি দিয়ে হত্যা করি তবে আমি এই সমস্যাটিতে চলে এসেছি।

আমি যদি কেবল node index.jsগিট ব্যাশের পরিবর্তে দৌড়ে গিয়ে npm run startসিটিআরএল + সি দিয়ে হত্যা করি তবে আমি কখনই এই ত্রুটিটি পাই নি।

আমি নিশ্চিত না কেন, তবে আমি বুঝতে পেরেছি এটি কারওর পক্ষে সহায়তা করতে পারে।


1
মূলত একই সেটআপ নিয়ে আমি একই সমস্যা পাচ্ছি getting আমার ক্ষেত্রে আমি লক্ষ্য করেছি যে এনপিএমের মাধ্যমে একটি এক্সপ্রেস অ্যাপ্লিকেশন চালানো দুটি প্রক্রিয়া তৈরি করে, তবে সিটিআরএল + সি ব্যবহার করার সময় কেবল একটিই বন্ধ থাকে। কেবল নোড দিয়ে অ্যাপ্লিকেশন শুরু করার সময়, কেবলমাত্র একটি প্রক্রিয়া খোলা থাকে এবং এটি সঠিকভাবে বন্ধ হয়।
worc

1
উইন্ডোজ ইস্যুটির জন্য এই গিটটি পুরো বিষয়টির উপরে আলোকপাত করা। মনে হচ্ছে পুদিনা এবং একটি সাইগউইন নির্ভরতার মধ্যে কোথাও একটি বাগ থাকতে পারে।
worc

3

উইন্ডোজ ব্যবহারকারীদের জন্য ইউআই সমাধান: আমি দেখতে পেয়েছি যে শীর্ষ উত্তরগুলি আমার পক্ষে কাজ করে না, তারা ম্যাক বা লিনাক্স ব্যবহারকারীদের জন্য কমান্ড বলে মনে হয়েছিল। আমি একটি সহজ সমাধান পেয়েছি যার মনে রাখার জন্য কোনও আদেশের প্রয়োজন নেই: টাস্ক ম্যানেজার খুলুন (সিটিআরএল + শিফট + এসসি)। ব্যাকগ্রাউন্ড প্রক্রিয়াগুলি দেখুন। নোড.জেএস কিছু আবিষ্কার করুন এবং কার্যটি শেষ করুন।

আমি এটি করার পরে বিষয়টি আমার পক্ষে চলে গেল। অন্যান্য উত্তরে যেমন বলা হয়েছে যে এটি ব্যাকগ্রাউন্ড প্রক্রিয়াগুলি এখনও চলছে কারণ একটি ত্রুটি আগে দেখা গিয়েছিল এবং নিয়মিত প্রস্থান / ক্লিন আপ ফাংশনগুলি কল করা হয়নি, সুতরাং তাদের হত্যা করার একটি উপায় হল টাস্ক ম্যানেজারে প্রক্রিয়াটি সন্ধান করা এবং সেখানে হত্যা করা to । আপনি যদি কোনও টার্মিনাল / পাওয়ারশেল থেকে প্রক্রিয়াটি চালিয়ে যান তবে আপনি সাধারণত এটি মারতে ctrl + c ব্যবহার করতে পারেন।


হ্যাঁ, উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ আপনাকে ধন্যবাদ
দিনা ২

3

আমার উত্তরে @ জেরার্ডের মন্তব্যটি পুনরায় লেখা:

ব্যবহার করে দেখুন pkill nodejsবা pkill nodeযদি উপর ইউনিক্স-সদৃশ অপারেটিং সিস্টেম।

এটি যে কোনও পোর্টে চলমান নোড সার্ভারটি চালিয়ে যাওয়া প্রক্রিয়াটিকে হত্যা করবে। আমার জন্য কাজ করেছেন।

Namaste🙏


2

নোড মেমরির কোথাও চলছে এবং সেই বন্দরটি লক হয়ে গেছে। উইন্ডোজে, বেশিরভাগ উইন্ডোজ সমস্যার মতো, এই সমস্যাটি ঘটবে, CTRL+ ALT+ DELএবং / অথবা পুনরায় বুট করার মাধ্যমে সমাধান করা হবে ।


এই প্রশ্নটি আরও অনেক প্রশ্নের উত্তর দেয়। এটি বন্ধ করুন এবং এটি আবার চালু করুন। জিনিয়াস।
datUser

1

এই সমস্যাগুলির কারণগুলি হ'ল:

  1. স্কাইপের মতো এই বন্দরে যে কোনও একটি অ্যাপ্লিকেশন চলতে পারে।
  2. নোড ক্র্যাশ হয়ে থাকতে পারে এবং বন্দরটি মুক্তি পেল না।
  3. আপনি হয়ত একের বেশি সার্ভার চালু করার চেষ্টা করেছেন। এই সমস্যাটি সমাধান করার জন্য, সার্ভারটি শুরু হয়েছে কিনা তা পরীক্ষা করতে একটি বুলিয়ান বজায় রাখতে পারে। এটি কেবল তখনই শুরু করা উচিত যদি বুলিয়ান মিথ্যা বা অপরিবর্তিত ফেরত দেয়;

1

সার্ভার.ক্লজ () সংযোগটি বন্ধ করতে কিছুটা সময় নেয়, সুতরাং আমাদের এটিকে একটি অ্যাসিনক্রোনাস কল করা উচিত:

await server.close();

গুরুত্বপূর্ণ: অপেক্ষা করার সময় , আমাদের অবশ্যই আমাদের এনক্যাপসুলেটিং ফাংশনে async কীওয়ার্ডটি ব্যবহার করতে হবে :

async () => {
  await server.close();
}

1

পোর্টটি পরিবর্তন করতে টার্মিনাল / সেমিডির নীচের কমান্ডটি ব্যবহার করুন (এনপিএম রান ডেভ নোড.জেএস এর জন্য) আপনার অ্যাপ্লিকেশন চালানোর জন্য আপনার কাছে অন্যান্য কমান্ড থাকতে পারে তাদের বেশিরভাগ বন্দর পরিবর্তন করার সময়, সহজ এবং দ্রুত চালানোর সময় কাজ করবে। তদতিরিক্ত, আপনি আপনার সিস্টেমে বিনামূল্যে যে কোনও পোর্ট নম্বর 3002 এর পরিবর্তে ব্যবহার করতে পারেন

PORT=3002 npm run dev

হঠাৎ করে বা অজান্তে একটি প্রস্থান করার সময় যখন কেউ এই প্রকল্পটি চালায় তখন বেশিরভাগ সময় নিয়ন্ত্রণ + z চাপায় যা আপনাকে বন্দর থেকে বাইরে বেরিয়ে আসতে সহায়তা করে সর্বদা নিয়ন্ত্রণ + সি যা সার্ভার বা প্রকল্প চালানোর জন্য বন্দর থেকে প্রস্থান করতে পারে না।

তদতিরিক্ত, আপনার কোডে পোর্ট নম্বর পরিবর্তন করার সময় এটি

server.listen(3002);

0

এর অর্থ একই পোর্টে আপনার দুটি নোড সার্ভার রয়েছে, যদি কেউ একটি বন্দরে চলমান থাকে তবে 3000 কে অন্যটি অন্য একটি বন্দরে পরিবর্তন করতে বলা যাক 3001 বলুন এবং সবকিছু ভালভাবে কাজ করবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.