एनजी सर्व कमांड चलाते समय "पोर्ट 4200 पहले से उपयोग में है"


179

मैं कोणीय 2 सीख रहा हूं और पहली बार मैं एक सैंडबॉक्स प्रोजेक्ट बनाने के लिए कोणीय सीएलआई परियोजना का उपयोग कर रहा हूं।

मैं कमांड "एनजी सर्व" करने में सक्षम था और यह बहुत अच्छा काम करता है। मैं इसे चलाने से रोकना चाहता था इसलिए मैंने "कंट्रोल जेड" चलाया।

जब मैंने "एनजी-सर्व" कमांड को फिर से चलाने की कोशिश की तो यह मुझे देता है "पोर्ट 4200 पहले से ही उपयोग में है।"

मैंने पीआईडी ​​की सूची प्राप्त करने के लिए "पीएस" चलाया और कोणीय-क्ली के लिए पीआईडी ​​को मार दिया और "एनजी-सर्व" को फिर से चलाया, यह अभी भी उपयोग त्रुटि में समान पोर्ट देता है।


एक आजीवन विंडोज डेवलपर मैंने पिछले कुछ महीनों को एक मैक पर बिताया है और खुद को सीएमडी + जेड का उपयोग करने के लिए प्रशिक्षित किया है। मैंने इस समस्या को विंडोज पर वापस चलाना शुरू कर दिया है क्योंकि मैं CTRL + Z के बजाय CTRL + Z को डिफॉल्ट कर रहा था
Kildareflare

यदि आप दृश्य स्टूडियो कोड पर काम कर रहे हैं, तो इसे बंद करें और इसे पुनरारंभ करें।
कुरकुला

जवाबों:


323

यह वही है जो मैंने पोर्ट 4200 पर प्रगति को मारने के लिए इस्तेमाल किया था

लिनक्स उपयोगकर्ताओं के लिए:

sudo kill $(sudo lsof -t -i:4200)

आप यह भी आज़मा सकते हैं:

sudo kill `sudo lsof -t -i:4200`

विंडोज़ उपयोगकर्ताओं के लिए:

पोर्ट नंबर 4200 पहले से उपयोग में है। Cmd को व्यवस्थापक के रूप में खोलें। Cmd में कमांड के नीचे टाइप करें:

netstat -a -n -o

और फिर, पोर्ट नंबर 4200 के साथ पोर्ट को टर्मिनल पर राइट क्लिक करके ढूंढें और खोजें पर क्लिक करें, "खोजें क्या" में 4200 दर्ज करें और "अगला खोजें" पर क्लिक करें: आपको बता दें कि पोर्ट नंबर 4200 का उपयोग pid 18932 द्वारा किया जाता है। नीचे कमांड टाइप करें cmd:

taskkill -f /pid 18932

यूनिक्स के लिए:

alias ngf='kill -9  $(lsof -t -i:4200);ng serve'

अब प्रोजेक्ट फ़ोल्डर से टर्मिनल में एनजीएफ ( एनजी सर्व के बजाय ) चलाएं । यह पोर्ट 4200 का उपयोग करके सभी प्रक्रियाओं को मार देगा और आपकी कोणीय परियोजना को चलाएगा।


3
जबकि मुझे पता है कि यह सही समाधान है, क्या यह एक भयानक समाधान नहीं लगता है? क्या होगा यदि मैं ng serveएक अलग निर्देशिका पर चलना चाहता हूं ? इस तरह से सर्वर को मारने का कोई मतलब नहीं है और फिर इसे कहीं और फिर से शुरू करें या क्या मुझे कुछ याद आ रहा है?
नाथन डन

6
आप इसके साथ एक अलग पोर्ट निर्दिष्ट कर सकते हैं: --port <new_port>
estellezg

4
यह डिफ़ॉल्ट ब्राउज़र को मारता है। और मददगार नहीं।
शिजिन

7
इसने मेरी ब्राउज़र विंडो को मार दिया। मुझे यह पता लगा कि आखिरकार ... मैंने ^Zएक मौजूदा कोणीय उदाहरण पर किया था जो डिफ़ॉल्ट पोर्ट का उपयोग कर रहा था, मुझे मूर्खतापूर्ण!
शांतकांत

1
खिड़कियों में पोर्ट 4200 का उपयोग करने वाले पीआईडी ​​को जल्दी से जांचने के लिए, netstat -a -n -o का उपयोग करें 4200
पेंटा

186

अपने ओपन cmd.exeके रूप में administrator,

तो पता लगाएं PIDकीport 4200

netstat -ano | findstr :4200

पोर्ट 4200 के लिए पीआईडी

यहाँ मेरे पास 3 पीआईडी ​​हैं:

  • लाल एक "एनजी-सर्व" (127.0.0.1:4200) से है LISTENING
  • ग्रीन एक "आपका ब्राउज़र" है

केवल पोर्ट 4200 को मारें (लाल पीआईडी ​​को मारें):

taskkill /PID 15940 /F

नोट: हरे रंग को मारना केवल आपके ब्राउज़र को बल द्वारा बंद कर देगा।

टास्ककिल पिड 15940

अब आप एक ही पोर्ट 4200 पर अपना कोणीय ऐप शुरू करने के लिए "एनजी-सर्व" कर सकते हैं




अतिरिक्त सामग्री:

वन लाइनर: इसे ऑप्टिमाइज़ करने का तरीका देखने के बाद, यहाँ इस उत्तर की वन-लाइनर कमांड है: ( इस टिप्स के लिए जोसेफ अलसीना का विशेष धन्यवाद )

for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a

2
इसे करने के लिए याद रखें cmd, नहीं Git Bash
सिंह

2
विंडोज नेटस्टैट पर GitBash के लिए सिंटेक्स -ano | ढलाई: 4200; टास्ककिल-पीआईडी ​​<स्थापितपीआईडी>
-एफ

जीआईटी बैश को अपडेट करना मेरी समस्या को ठीक करता है
इस्माइल फारूक

90

Mac OS X पर आपको निम्न कमांड की आवश्यकता है:

sudo lsof -t -i tcp:4200 | xargs kill -9

याद रखें कि आपको कमांड + सी के साथ कोणीय के वेब सर्वर को मारने की आवश्यकता है।


उबंटू में भी काम किया।
बजे सीनियर

2
कमांड + सी किसी भी प्रक्रिया को मारने के लिए महत्वपूर्ण है। खुद और अन्य देवता जल्दबाजी में प्रेस कमांड + z, जो सिर्फ इसे मारने के बजाय प्रक्रिया को निलंबित करता है।
जसमीत

2
@ जसमीत प्रेस कमांड + जेड ने मुझे कई बार मिला है!
जूलियन फ्रेजर

26

Ctrl + Z नहीं, आपको ctrl + C को रोकना होगा


समस्या का सबसे सरल समाधान तक, भले ही तकनीकी रूप से यह ओपी प्रश्न का जवाब नहीं देता है
फ्लोरियन

@ मुझे लगता है कि समाधान है, क्योंकि मेरा जवाब सही कारण है, प्रभाव नहीं
Emir Mamashov

16

एनजी को मारने के लिए इस कमांड का उपयोग करें:

pkill -9 ng

3
मैं अपने ubuntu 18.04 पर इसका इस्तेमाल किया। इसने मेरी स्क्रीन को
चमक दिया

यह अन्य सभी ऐप्स को मारता है। लेकिन अंत में मेरे लिए काम करता है .. धन्यवाद
शक्तिकांत

13

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

अपने दिए गए पोर्ट पर चलने के लिए आपको ऊपर दिए गए कमांड को आजमाना चाहिए।


Ubuntu 18 पर अच्छी तरह से काम किया।
मार्क ओडे

11

जब आप उपयोग करते हैं Ctrl+Z, तो आप एक रनिंग कार्य को स्थगित करने जा रहे हैं, लेकिन इसे मारने के लिए नहीं। आप बाद fgमें कार्य को फिर से शुरू करने के लिए कमांड का उपयोग कर सकते हैं । यदि आप छोड़ना चाहते हैं ng serve, तो आपको Ctrl+Cइसके बजाय उपयोग करना चाहिए , जिसमें 4200 पोर्ट भी जारी होगा।


7

अभी आप --port 0एक मुफ्त पोर्ट प्राप्त करने के लिए सेट कर सकते हैं ।

ng serve --port 0 // will get a free port for you

इस मामले में --openध्वज का उपयोग करना न भूलें , अन्यथा आपको पता नहीं चलेगा कि किस बंदरगाह में शुरू किया गया था।
rplaurindo

1
टर्मिनल ने मुझे बताया कि उसने किस पोर्ट को चुना। यह विंडोज़ उपयोगकर्ताओं के लिए सही उत्तर होना चाहिए।
रॉन


6

विंडोज के लिए:

ओपन कमांड प्रॉम्प्ट और

प्रकार: netstat -a -o -n

उस प्रक्रिया का पीआईडी ​​खोजें जिसे आप मारना चाहते हैं।

प्रकार: taskkill /F /PID 16876

यह एक 16876 - उस प्रक्रिया के लिए पीआईडी ​​है जिसे मैं मारना चाहता हूं - उस मामले में, प्रक्रिया 4200 है - संलग्न फ़ाइल की जांच करें। आप कोई भी पोर्ट नंबर दे सकते हैं।

यहां छवि विवरण दर्ज करें

अब, टाइप करें: ng serveअपने कोणीय ऐप को उसी पोर्ट 4200 पर शुरू करने के लिए


5

मैं इसे साझा कर रहा हूं क्योंकि दो आदेशों ने मेरे मैक पर काम नहीं किया:

sudo kill $(sudo lsof -t -i:4200)

sudo kill `sudo lsof -t -i:4200`

निम्नलिखित ने किया, लेकिन यदि आप विज़ुअल कोड में एकीकृत टर्मिनल का उपयोग कर रहे थे, तो अपने मशीन टर्मिनल का उपयोग करने की कोशिश करें और फाउलिंग कमांड जोड़ें:

lsof -t -i tcp:4200 | xargs kill -9

धन्यवाद यह मेरे लिए काम करता है, उपरोक्त सभी उत्तर मेरे लिए काम नहीं करते हैं जैसा कि उबंटू ओएस में वीएसकोड टर्मिनल का उपयोग कर रहा है।
सुरेंद्रनाथ एस

4
netstat -anp | grep ":4200"

यह आपको बताएगा कि पोर्ट किसे मिला है।


क्या यह है - ap? कुछ भी नहीं लौटा इसलिए मैंने सिर्फ एक स्थान जोड़ा क्योंकि आपकी आज्ञा "नेस्टैट: विकल्प के लिए एक तर्क की आवश्यकता थी
पीपी

आपका नेटस्टैट खदान से अलग होना चाहिए। शायद एक OS टैग जोड़ें।
जोशुआ

4
ng serve --port 4201 --live-reload-port 4200

और उपयोग का उपयोग localhost:4201

यह एक अस्थायी समाधान के रूप में काम करना चाहिए।

या

उपयोग करके पोर्ट उपयोग को सूचीबद्ध करने का प्रयास करें
lsof -i:4200
और इसे मैन्युअल रूप से उपयोग करके मारें
sudo kill -9 <Process PID using port 4200>


4

सारांश में, एक से अधिक समाधान हैं: 1) पोर्ट संख्या को परिभाषित करने के लिए दूसरे पोर्ट का उपयोग करके,

ng serve --open --port 4201

2) प्रक्रिया को मारकर

ctrl + c // for kill
Close all node terminal which is related for running the app.

3) टाइप करें

netstat -a -n -o

कमांड प्रॉम्प्ट में फिर संबंधित पोर्ट PID ढूंढें और इसे मारें

taskkill /F /PID (pid number)

4) टाइप करें netstat -ano|findstr :4200

विदेशी पता PID लिया जिसमें पोर्ट नंबर हो और फिर उसे मार दें

taskkill /PID (pid number)/F


4

खिड़कियों में चलने वाले सभी स्थानीय पोर्ट को रोकने के लिए, नेटस्टैट का उपयोग करते हुए, अलग-अलग पिड की खोज करने के बजाय अकेले इस सरल टिप्पणी का उपयोग करें,

यह सभी pid को ढूंढता है और वर्तमान में चल रहे लोकल पोर्ट को रोक देता है,

taskkill /im node.exe /f

खिड़कियों में कोणीय 4 के लिए उपयोगी :)
इकारस

3

बस जिस आईडीई का आप उपयोग कर रहे हैं, उसे पुनः आरंभ करें, तब यह काम करेगा।


3

Ctrl + z के साथ आपने प्रोग्राम को बैकग्राउंड में रखा। लिनक्स पर आप निम्न कमांड के साथ सत्र को अग्रभूमि में प्राप्त कर सकते हैं:

fg ng serve

आपको प्रक्रिया को मारने की आवश्यकता नहीं है।



2

मेरे मामले में उपरोक्त में से किसी ने भी काम नहीं किया।

UBUNTU 18.04 संस्करण

नीचे कमान ने काम किया।

sudo kill -9 $(lsof -i tcp:4200 -t)

2

यदि आप VSCode का उपयोग कर रहे हैं, तो आपके पास टर्मिनल को मारने और एक नया टर्मिनल जोड़ने का विकल्प है। टैब बंद करें और एक नया टैब खोलें। इसने मेरे लिए काम किया।

संपादित: ctrl + c और y दबाएँ। हत्या टर्मिनल के साथ, आप आगे बढ़ सकते हैं। यदि आप दृश्य स्टूडियो का एक नया उदाहरण खोलना चाहते हैं और एक अलग एप्लिकेशन चलाना चाहते हैं, तो आप एनजी सर्व --पोर्ट 4401 का उपयोग कर सकते हैं।


2

उबंटू ओएस में वीएसकोड टर्मिनल प्रक्रिया को मारने के लिए कमांड का उपयोग करता है

lsof -t -i tcp:4200 | xargs kill -9

1

आप दृश्य स्टूडियो कोड में अपना एप्लिकेशन चलाने के लिए इसके साथ भी प्रयास कर सकते हैं -:

ng serve --open --port 4201

आप कोई भी पोर्ट नंबर दे सकते हैं।


1

यह कहता है कि हम पहले से ही पोर्ट नं 4200 के साथ सेवाएं चला रहे हैं कृपया 4200 के बजाय दूसरे पोर्ट का उपयोग करें। समस्या को हल करने के लिए नीचे कमांड है

एनजी सर्व --पोर्ट 4300



1

उस प्रक्रिया को मारें और टर्मिनल को बंद करें जिसका उपयोग आपने उस पोर्ट पर ऐप चलाने के लिए किया था।


1

पूरी प्रक्रिया को मारने या उपयोग करने के बजाय ctrl+z , आप बस ctrl+cसर्वर को रोकने के लिए उपयोग कर सकते हैं और ng serve commandबिना किसी खुशी के उपयोग कर सकते हैं errorsया यदि आप एक अलग पोर्ट पर चलाना चाहते हैं तो बस इस कमांड का उपयोग करें ng serve --port portno(ex: ng serve --port 4201)


1

Ubndu के लिए 18.04 sudo lsof -t -i tcp: 3000 | xargs मार -9

यह तब होता है जब बंदरगाह को निर्विवाद रूप से समाप्त कर दिया जाता है इसलिए यह कमांड इसे 4200 या 3000 या 3300 किसी भी समय समाप्त कर देगा


0

मुझे भी उसी त्रुटि संदेश का सामना करना पड़ा, इसलिए मैंने 12012 पासपोर्ट सेवा की कोशिश की और यह ठीक काम किया।


6
हम हर बार नए पोर्ट को अलॉट नहीं कर सकते हैं।
शिजिन

10
इन जैसे जवाबों को कौन उठा रहा है?
शार्क 1608

0

यदि आप CMD और IDE दोनों में अपने कोणीय JS कोड को संकलित करते हैं तो यह समस्या होती है। CMD में, आपका कोणीय JS कोड स्वचालित रूप से संकलित करता है जब भी आप IDE में अपने कोणीय JS कोड को बदलते हैं और तब आपका IDE उसी पोर्ट पर कब्जा करना चाहता है अर्थात 4200 जो कि CMD द्वारा पहले से ही कब्जा कर लिया गया है, तो इस मुद्दे का एक सरल समाधान है, बस अपने को बंद करें IDE में अपना कोड संकलित करते समय cmd।


0

मुझे हर बार बंदरगाह को मारने के लिए एक ही मुद्दे का सामना करना पड़ रहा था।

मैंने ./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0इसके npm startऔर इसके कामों के बजाय कोशिश की

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.