“ พอร์ต 4200 ใช้งานอยู่แล้ว” เมื่อเรียกใช้คำสั่ง ng บริการ


179

ฉันกำลังเรียนรู้เชิงมุม 2 และเป็นครั้งแรกที่ฉันใช้โครงการเชิงมุม CLI เพื่อสร้างโครงการ sandbox

ฉันสามารถเรียกใช้คำสั่ง "บริการ ng" และใช้งานได้ดี ฉันต้องการหยุดมันไม่ให้วิ่งฉันจึงวิ่ง "Control Z"

เมื่อฉันพยายามเรียกใช้คำสั่ง "ng-เสิร์ฟ" อีกครั้งมันทำให้ฉัน "พอร์ต 4200 ถูกใช้งานแล้ว"

ฉันวิ่ง "PS" เพื่อรับรายการ PID และฆ่า PID สำหรับ angi-cli และวิ่ง "ng-เสิร์ฟ" อีกครั้งก็ยังคงให้พอร์ตเดียวกันในข้อผิดพลาดการใช้งาน


นักพัฒนา Windows ตลอดชีวิตฉันใช้เวลาสองสามเดือนที่ผ่านมาบน Mac และฝึกฝนตัวเองให้ใช้ CMD + Z ฉันเริ่มพบปัญหานี้กลับมาที่ Windows เนื่องจากฉันเริ่มต้นเป็น CTRL + Z แทน CTRL + C
Kildareflare

หากคุณกำลังทำงานกับรหัสสตูดิโอภาพให้ปิดและเริ่มต้นใหม่
Kurkula

คำตอบ:


323

นี่คือสิ่งที่ฉันใช้ในการฆ่าความคืบหน้าในพอร์ต 4200

สำหรับผู้ใช้ linux:

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

คุณสามารถลองสิ่งนี้:

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

สำหรับผู้ใช้ windows:

หมายเลขพอร์ต 4200 ถูกใช้งานแล้ว เปิด cmd ในฐานะผู้ดูแลระบบ พิมพ์คำสั่งด้านล่างใน cmd:

netstat -a -n -o

จากนั้นค้นหาพอร์ตที่มีหมายเลขพอร์ต 4200 โดยคลิกขวาที่เทอร์มินัลแล้วคลิกค้นหาป้อน 4200 ใน "ค้นหาอะไร" และคลิก "ค้นหาถัดไป": สมมติว่าคุณพบว่าหมายเลขพอร์ต 4200 ถูกใช้โดย pid 18932 cmd:

taskkill -f /pid 18932

สำหรับ UNIX:

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

ตอนนี้เรียกใช้ngf (แทนการให้บริการ ng ) ใน terminal จากโฟลเดอร์โครงการ สิ่งนี้จะฆ่ากระบวนการทั้งหมดโดยใช้พอร์ต 4200 และเรียกใช้โครงการเชิงมุมของคุณ


3
ในขณะที่ฉันรู้ว่านี่เป็นคำตอบที่ถูกต้อง แต่ดูเหมือนว่านี่จะไม่ใช่วิธีที่น่ากลัวใช่ไหม จะทำอย่างไรถ้าฉันต้องการเรียกใช้ng serveในไดเรกทอรีอื่น ไม่สมเหตุสมผลที่จะฆ่าเซิร์ฟเวอร์ด้วยวิธีนี้จากนั้นรีสตาร์ทเซิร์ฟเวอร์ที่อื่นหรือฉันขาดหายไป
Nathan Dunn

6
คุณสามารถระบุพอร์ตอื่นด้วย: --port <new_port>
estellezg

4
นี่เป็นการฆ่าเบราว์เซอร์เริ่มต้น และไม่เป็นประโยชน์
shijin

7
นี่เป็นการฆ่าหน้าต่างเบราว์เซอร์ของฉัน ในที่สุดฉันก็คิดออกว่า ... ฉันทำ^Zอินสแตนซ์เชิงมุมที่มีอยู่แล้วซึ่งใช้พอร์ตเริ่มต้นทำให้ฉันงี่เง่า!
quietContest

1
ในการตรวจสอบว่า pid ใดกำลังใช้พอร์ต 4200 ใน windows อย่างรวดเร็วให้ใช้ netstat -a -n -o | findstr 4200
penta

186

เปิดของคุณcmd.exeเป็นadministrator,

จากนั้นหาPIDของport 4200

netstat -ano | findstr :4200

Pid สำหรับพอร์ต 4200

ที่นี่ฉันมี 3 PID:

  • สีแดงมาจาก "ng-เสิร์ฟ" (127.0.0.1:4200) LISTENING
  • สีเขียวอันหนึ่งมาจาก "เบราว์เซอร์ของคุณ"

kill only port 4200 (kill PID สีแดง):

taskkill /PID 15940 /F

หมายเหตุ: การทำลายกรีนจะทำให้เบราว์เซอร์ของคุณปิดโดยใช้แรง

taskkill pid 15940

ตอนนี้คุณสามารถทำ "ng-service" เพื่อเริ่มแอพเชิงมุมที่พอร์ตเดียวกัน 4200




สิ่งเพิ่มเติม:

One liner:หลังจากมองหาวิธีการปรับให้เหมาะสมนี่คือคำสั่ง One-liner ของคำตอบนี้: (ขอบคุณเป็นพิเศษกับ: Josep Alsinaสำหรับคำแนะนำนี้)

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

2
โปรดจำไว้ว่าจะทำมันในไม่cmd Git Bash
Leo

2
Syntsax สำหรับ GitBash บน Windows netstat -ano | findstr: 4200; taskkill -PID <establishedPID> -F
intotecho

การอัปเดต GIt Bash แก้ไขปัญหาของฉัน
Ismail Farooq

90

ใน Mac OS X คุณต้องใช้คำสั่งต่อไปนี้:

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

จำไว้ว่าคุณต้องฆ่าเว็บเซิร์ฟเวอร์ของ Angular ด้วย Command + C


ทำงานใน Ubuntu เช่นกัน
Becario Senior

2
command + C เป็นกุญแจสำคัญในการฆ่ากระบวนการใด ๆ ตัวเองและผู้พัฒนารายอื่นด้วยการกดคำสั่งเร่งด่วน + z ซึ่งเป็นการหยุดกระบวนการชั่วคราวแทนที่จะฆ่ามัน
Jasmeet

2
@jasmeet การกด Command + Z ทำให้ฉันหลายครั้งเกินไป!
Julian Fraser

26

ไม่ใช่ ctrl + Z คุณต้องเรียกใช้เพื่อหยุด ctrl + C


โดยไกลทางออกที่ง่ายที่สุดในการแก้ไขปัญหาถึงแม้ว่าในทางเทคนิคจะไม่ตอบสนองต่อคำถาม OP
Florian

@ ฉันคิดว่าวิธีแก้ปัญหาเพราะคำตอบของฉันแก้ไขเหตุผลไม่มีผลกระทบ
Emir Mamashov

16

ใช้คำสั่งนี้เพื่อฆ่า ng:

pkill -9 ng

3
ฉันใช้มันใน Ubuntu 18.04 ของฉัน มันกระพริบหน้าจอของฉันและพาฉันไปที่ ubuntu login ฆ่าทุกแอป
srv_sud

สิ่งนี้ฆ่าแอปอื่น ๆ ทั้งหมด แต่ในที่สุดก็ใช้งานได้สำหรับฉัน .. ขอบคุณ
Sakthikanth

13

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

คุณควรลองคำสั่งด้านบนเพื่อทำงานบนพอร์ตที่คุณกำหนด


ทำงานได้ดีบน Ubuntu 18
Mark Odey

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
เทอร์มินัลบอกฉันว่าพอร์ตไหนที่เลือก นี่ควรเป็นคำตอบที่ถูกต้องสำหรับผู้ใช้ Windows
Ron


6

สำหรับ Windows:

เปิดพร้อมท์คำสั่งและ

พิมพ์: netstat -a -o -n

ค้นหา PID ของกระบวนการที่คุณต้องการฆ่า

ประเภท: taskkill /F /PID 16876

16876 อันนี้ - เป็น PID สำหรับกระบวนการที่ฉันต้องการฆ่า - ในกรณีนั้นกระบวนการคือ 4200 - ตรวจสอบไฟล์ที่แนบมาคุณสามารถให้หมายเลขพอร์ตใดก็ได้

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้พิมพ์: ng serveเพื่อเริ่มแอพเชิงมุมที่พอร์ตเดียวกัน 4200


5

ฉันกำลังแบ่งปันสิ่งนี้เนื่องจากคำสั่ง fowling สองคำสั่งไม่ทำงานบน mac ของฉัน:

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

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

สิ่งต่อไปนี้ทำ แต่ถ้าคุณใช้เทอร์มินัลรวมใน Visual Code ให้ลองใช้เทอร์มินัลเครื่องของคุณและเพิ่มคำสั่ง fowling:

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

ขอบคุณมันใช้งานได้สำหรับฉันคำตอบทั้งหมดข้างต้นไม่ได้ผลสำหรับฉันเหมือนกับที่ใช้เทอร์มินัล VScode ใน Ubuntu OS
SURENDRANATH S

4
netstat -anp | grep ":4200"

นี่จะบอกคุณว่าใครมีพอร์ต


มันคืออะไร? ที่ส่งคืนอะไรดังนั้นฉันเพิ่งเพิ่มช่องว่างเพราะคำสั่งของคุณถูกถามว่า "nestat: ตัวเลือกต้องมีอาร์กิวเมนต์ --p"
peztherez

netstat ของคุณจะต้องแตกต่างจากของฉัน อาจเพิ่มแท็ก 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

ใน command prompt จากนั้นหาพอร์ต PID ที่เกี่ยวข้องและฆ่ามันโดย

taskkill /F /PID (pid number)

4) ประเภท netstat -ano|findstr :4200

เอา PID ที่อยู่ต่างประเทศที่มีหมายเลขพอร์ตแล้วฆ่ามันด้วย

taskkill /PID (pid number)/F


4

หากต้องการหยุดพอร์ตภายในเครื่องทั้งหมดที่ทำงานใน windows ให้ใช้ความคิดเห็นง่ายๆนี้เพียงอย่างเดียวแทนการค้นหา pid separatly โดยใช้ netstat

ค้นหา pid ทั้งหมดและหยุดพอร์ตท้องถิ่นที่กำลังทำงานอยู่

taskkill /im node.exe /f

มีประโยชน์สำหรับ angular 4 ใน windows :)
Icarus


3

ด้วย ctrl + z คุณวางโปรแกรมไว้ในพื้นหลัง บน Linux คุณสามารถรับเซสชันกลับมาทำงานเบื้องหน้าได้ด้วยคำสั่งต่อไปนี้:

fg ng serve

คุณไม่จำเป็นต้องฆ่ากระบวนการ




2

หากคุณใช้ VSCode คุณมีตัวเลือกในการฆ่า terminal และเพิ่ม terminal ใหม่ ปิดแท็บและเปิดแท็บใหม่ มันใช้งานได้สำหรับฉัน

แก้ไข: ใช้ ctrl + c แล้วกด y คุณสามารถดำเนินการต่อได้ หากคุณต้องการเปิดอินสแตนซ์ใหม่ของ visual studio และเรียกใช้แอปพลิเคชันอื่นคุณสามารถใช้ ng เสิร์ฟ - พอร์ต 4401


2

เทอร์มินัล VScode ใน Ubuntu OS ใช้คำสั่งต่อไปนี้เพื่อฆ่ากระบวนการ

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

1

คุณสามารถลองใช้วิธีนี้เพื่อรันแอปพลิเคชันของคุณในรหัส visual studio -:

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 kill -9

มันเกิดขึ้นเมื่อพอร์ตถูกยกเลิกโดยไม่สมควรดังนั้นคำสั่งนี้จะยกเลิกมัน 4200 หรือ 3000 หรือ 3300 ใด ๆ


0

ฉันยังต้องเผชิญกับข้อผิดพลาด msg เดียวกันดังนั้นฉันจึงลองng เสิร์ฟ - พอร์ต 12012และทำงานได้ดี


6
เราไม่สามารถเพิ่มพอร์ตใหม่ได้ทุกครั้ง
shijin

10
ใครบ้างที่ตอบคำถามเหล่านี้
shark1608

0

หากคุณรวบรวมรหัส JS เชิงมุมของคุณทั้งใน CMD และ IDE ปัญหานี้จะเกิดขึ้น ใน CMD โค้ด JS เชิงมุมของคุณจะรวบรวมโดยอัตโนมัติเมื่อใดก็ตามที่คุณเปลี่ยนโค้ด JS เชิงมุมของคุณใน IDE จากนั้น IDE ของคุณต้องการใช้พอร์ตเดียวกันเช่น 4200 ซึ่งครอบครองโดย CMD แล้วดังนั้นจึงมีวิธีแก้ปัญหาง่ายๆสำหรับคุณ cmd ขณะคอมไพล์โค้ดของคุณใน IDE


0

ฉันกำลังเผชิญปัญหาเดียวกันทุกครั้งที่ฉันต้องฆ่าพอร์ต

ฉันพยายาม./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0แทนnpm startและผลงานของมัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.