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




angularjs tutorial pdf (22)

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

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

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

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


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


Port 4200 is already in use. Use '--port' to specify a different port

इसका मतलब है कि आपके पास बंदरगाह 4200 पर पहले से ही एक और सेवा चल रही है। यदि ऐसा है तो आप या तो कर सकते हैं। दूसरी सेवा बंद करो। एनजी चलाने के दौरान --port ध्वज का उपयोग करें इस तरह की सेवा करें:

 ng serve --port 9001

ध्यान देने योग्य एक और बात यह है कि, कुछ मशीनों पर, डोमेन लोकहोस्ट काम नहीं कर सकता है। आप 127.0.0.1 जैसे संख्याओं का एक सेट देख सकते हैं। जब आप ng सेवा करते हैं तो यह आपको दिखाना चाहिए कि सर्वर किस सर्वर पर चल रहा है, इसलिए अपने सटीक विकास URL को ढूंढने के लिए अपनी मशीन पर संदेशों को पढ़ना सुनिश्चित करें।


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


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

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

आप यह भी कोशिश कर सकते हैं:

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

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

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

netstat -a -n -o

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

taskkill -f /pid 18932

विंडोज़ में; कमांड प्रॉम्प्ट में जो आपके एनजी सर्विस चला रहा है बस क्लिक करें और कुंजी दबाएं:

ctrl + c

यह आपको पूछेगा: Terminate batch job (Y/N)? और आप Y टाइप करें


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

और localhost:4201 का उपयोग कर एक्सेस localhost:4201

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

या

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


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


ng serve --port <YOUR_GIVEN_PORT_NUMBER>

आपको अपने दिए गए बंदरगाह पर चलाने के लिए ऊपर दिए गए आदेश का प्रयास करना चाहिए।


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

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


administrator रूप में अपना cmd.exe खोलें,

फिर port 4200 के PID खोजें

netstat -ano | findstr :4200

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

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

केवल बंदरगाह 4200 मारो (लाल पीआईडी ​​को मारो):

taskkill /PID 15940 /F

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

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

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

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

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

मैक ओएस एक्स पर आपको निम्न आदेश की आवश्यकता है:

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

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


हम आदेश का पालन करके बंदरगाह को मजबूर कर सकते हैं।

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

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


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

pkill -9 ng

netstat -plnet

टीसीपी 0 0 127.0.0.1:4200 0.0.0.0:* लिस्टेन 1001 63955 7077 / एनजी

हत्या -9 7077

फिर अपनी एनजी सेवा शुरू करें।


किसी भी बदलाव के बाद पहला कदम, मैं ng build उपयोग करता हूं, फिर ng serve हूं। यह किसी भी समस्या के बिना काम करता है।


.angular-cli फ़ाइल में बंदरगाह को बदलना संभव है। उदाहरण के लिए:

"defaults": {
    "styleExt": "css",
    "component": {},
    "serve": {
      "port": 4205
    }
  }

इसके अतिरिक्त, इसे अपने package.json जोड़ना जरूरी है package.json :

"ng": "ng",
"start": "ng serve"

एनजी सेवा --पोर्ट 122345 मेरे लिए ठीक काम किया है।


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

ng serve --open --port 4201

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


लिनक्स टकसाल 17 पर, यह काम कर रहा है।

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


यदि आप लिनक्स ऑपरेटिंग सिस्टम है तो आप fuser -k 4200 / tcp का उपयोग कर सकते हैं


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





angular