Cổng Port 4200 đã được sử dụng, khi chạy lệnh ng phục vụ


179

Tôi đang học góc 2 và lần đầu tiên tôi đang sử dụng dự án CLI góc cạnh để tạo ra một dự án hộp cát.

Tôi đã có thể chạy lệnh "ng phục vụ" và nó hoạt động rất tốt. Tôi muốn ngăn nó chạy vì vậy tôi đã chạy "Control Z".

Khi tôi cố chạy lại lệnh "ng-phục vụ", nó cho tôi "Cổng 4200 đã được sử dụng."

Tôi đã chạy "PS" để lấy danh sách PID và giết PID cho angular-cli và chạy lại "ng-phục vụ" nhưng nó vẫn đưa ra lỗi sử dụng cùng một cổng.


Một nhà phát triển Windows trọn đời tôi đã dành vài tháng qua cho máy Mac và tự đào tạo để sử dụng CMD + Z. Tôi bắt đầu gặp vấn đề này trên Windows khi tôi mặc định là CTRL + Z thay vì CTRL + C
Kildareflare

Nếu bạn đang làm việc với mã studio hình ảnh, hãy đóng nó và khởi động lại nó.
Kurkula

Câu trả lời:


323

Đây là những gì tôi đã sử dụng để giết tiến trình trên cổng 4200

Đối với người dùng linux:

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

Bạn cũng có thể thử điều này:

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

Đối với người dùng windows:

Số cổng 4200 đã được sử dụng. Mở cmd là quản trị viên. Gõ lệnh dưới đây trong cmd:

netstat -a -n -o

Và sau đó, tìm cổng có số cổng 4200 bằng cách nhấp chuột phải vào thiết bị đầu cuối và nhấp vào tìm, nhập 4200 vào "tìm cái gì" và nhấp vào "tìm tiếp theo": Giả sử bạn thấy rằng số cổng 4200 được sử dụng bởi pid 18932. Nhập lệnh bên dưới vào cmd:

taskkill -f /pid 18932

Đối với UNIX:

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

Bây giờ hãy chạy ngf (thay vì ng phục vụ ) trong terminal từ thư mục dự án. Điều này sẽ giết tất cả các quy trình sử dụng cổng 4200 và chạy dự án Angular của bạn.


3
Trong khi tôi nhận ra rằng đây là giải pháp chính xác, thì đây dường như không phải là một giải pháp kinh khủng? Nếu tôi muốn chạy ng servetrên một thư mục khác thì sao? Không có nghĩa là giết máy chủ theo cách này và sau đó khởi động lại nó ở một nơi khác hoặc tôi đang thiếu một cái gì đó?
Nathan Dunn

6
Bạn có thể chỉ định một cổng khác với: --port <new_port>
estellezg

4
Điều này giết chết trình duyệt mặc định. Và không hữu ích.
shijin

7
điều này đã giết chết cửa sổ trình duyệt của tôi. Cuối cùng tôi cũng đã hiểu ra ... Tôi đã thực hiện một ^Zví dụ góc hiện có đang sử dụng cổng mặc định, thật ngốc!
quietContest

1
Để nhanh chóng kiểm tra xem pid nào đang sử dụng cổng 4200 trong windows, hãy sử dụng netstat -a -n -o | findstr 4200
penta

186

Mở cmd.exenhư administrator,

sau đó Tìm PIDvềport 4200

netstat -ano | findstr :4200

Pid cho cổng 4200

Ở đây tôi có 3 PID:

  • Màu đỏ là từ "ng-phục vụ" (127.0.0.1:4200) LISTENING
  • Màu xanh là từ "trình duyệt của bạn"

chỉ giết cổng 4200 (tiêu diệt PID đỏ):

taskkill /PID 15940 /F

lưu ý: tiêu diệt cái màu xanh lá cây sẽ chỉ khiến trình duyệt của bạn bị đóng bằng vũ lực.

nhiệm vụ pid 15940

bây giờ bạn có thể thực hiện "ng-phục vụ" để bắt đầu ứng dụng góc cạnh của mình tại cùng một cổng 4200




Công cụ bổ sung:

One liner: Sau khi tìm cách tối ưu hóa điều này, đây là lệnh One-liner của câu trả lời này: (đặc biệt cảm ơn: Josep Alsina vì lời khuyên này)

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

2
Nhớ làm điều đó trong cmd, không Git Bash.
Leo

2
Cú pháp cho GitBash trên Windows netstat -ano | tìm kiếm: 4200; taskkill -PID <setupPID> -F
intotecho

Cập nhật GIt Bash khắc phục sự cố của tôi
Ismail Farooq

90

Trên Mac OS X, bạn cần có lệnh sau:

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

Hãy nhớ rằng bạn cần phải giết máy chủ web của Angular bằng Command + C.


Làm việc trong Ubuntu là tốt.
Becario Senior

2
lệnh + C là chìa khóa để giết bất kỳ quá trình. Bản thân tôi và các nhà phát triển khác vội vàng nhấn lệnh + z, họ chỉ tạm dừng quá trình chứ không phải giết nó.
Jasmeet

2
@jasmeet nhấn Command + Z cũng đã nhận được cho tôi một số lần!
Julian Fraser

26

Không phải ctrl + Z, bạn phải chạy để dừng ctrl + C


cho đến nay, giải pháp đơn giản nhất cho vấn đề, ngay cả khi về mặt kỹ thuật, nó không trả lời cho câu hỏi của OP
Florian

@Flo Tôi nghĩ giải pháp, bởi vì câu trả lời của tôi sửa lý do, không phải hiệu ứng
Emir Mamashov

16

Sử dụng lệnh này để giết ng:

pkill -9 ng

3
tôi đã sử dụng nó trên Ubuntu 18.04. nó lóe lên màn hình của tôi và đưa tôi đến đăng nhập Ubuntu giết chết tất cả các ứng dụng
srv_sud

Điều này sẽ giết chết tất cả các ứng dụng khác. Nhưng cuối cùng cũng có tác dụng với tôi .. cảm ơn
Sakthikanth

13

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

Bạn nên thử lệnh trên để chạy trên cổng đã cho của bạn.


Hoạt động tốt trên Ubuntu 18.
Mark Odey

11

Khi bạn sử dụng Ctrl+Z, bạn sẽ tạm dừng một tác vụ đang chạy nhưng không giết nó. Sau này bạn có thể sử dụng lệnh fgđể tiếp tục nhiệm vụ. Nếu bạn muốn thoát ng serve, bạn nên sử dụng Ctrl+Cthay vào đó, trong đó cũng sẽ phát hành cổng 4200.


7

Ngay bây giờ bạn có thể thiết lập --port 0để có được một cổng miễn phí.

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

Trong trường hợp này, đừng quên sử dụng --opencờ, nếu không bạn sẽ không biết cổng nào được bắt đầu.
rplaurindo

1
Terminal nói với tôi nó chọn cổng nào. Đây phải là câu trả lời chính xác cho người dùng Windows.
Ron

6

Chúng tôi có thể mạnh mẽ giết cổng bằng cách làm theo lệnh.

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

6

Cho cửa sổ:

Mở lệnh Prompt

kiểu: netstat -a -o -n

Tìm PID của quá trình mà bạn muốn giết.

Kiểu: taskkill /F /PID 16876

Cái này 16876 - là bộ vi xử lý cho quá trình mà tôi muốn giết - trong trường hợp đó, quy trình là 4200 - kiểm tra tệp đính kèm. Bạn có thể đưa ra bất kỳ số cổng nào.

nhập mô tả hình ảnh ở đây

Bây giờ, Nhập: ng serveđể bắt đầu ứng dụng góc của bạn tại cùng một cổng 4200


5

Tôi đang chia sẻ điều này vì hai lệnh fowling không thực hiện công việc trên máy mac của tôi:

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

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

Điều sau đây đã làm, nhưng nếu bạn đang sử dụng thiết bị đầu cuối tích hợp trong Visual Code, hãy thử sử dụng thiết bị đầu cuối máy của bạn và thêm lệnh fowling:

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

Cảm ơn nó hoạt động với tôi, tất cả các câu trả lời ở trên không hoạt động với tôi như đang sử dụng thiết bị đầu cuối VScode trong Ubuntu OS.
SURENDRANATH S

4
netstat -anp | grep ":4200"

Điều này sẽ cho bạn biết ai đã có cổng.


là nó - anp? không trả về được gì nên tôi chỉ thêm một khoảng trắng vì lệnh của bạn đang yêu cầu "Nestat: tùy chọn yêu cầu một đối số --p"
peztherez

Netstat của bạn phải khác với tôi. Có thể thêm một thẻ hệ điều hành.
Joshua

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

và truy cập bằng localhost:4201

Điều này nên làm việc như một giải pháp tạm thời.

hoặc là

hãy thử liệt kê việc sử dụng cổng bằng cách sử dụng
lsof -i:4200
và giết nó bằng tay
sudo kill -9 <Process PID using port 4200>


4

Tóm lại, có nhiều hơn một giải pháp: 1) Bằng cách sử dụng một cổng khác để xác định số cổng,

ng serve --open --port 4201

2) bằng cách giết quá trình

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

3) Loại

netstat -a -n -o

trong dấu nhắc lệnh, sau đó tìm cổng PID liên quan và giết nó bằng cách

taskkill /F /PID (pid number)

4) Loại netstat -ano|findstr :4200

lấy địa chỉ nước ngoài PID chứa số cổng và sau đó giết nó bằng cách

taskkill /PID (pid number)/F


4

Để dừng tất cả các cổng cục bộ đang chạy trong windows, chỉ sử dụng nhận xét đơn giản này thay vì tìm kiếm pid riêng biệt bằng netstat,

Nó tìm thấy tất cả các pid và dừng cổng cục bộ hiện đang chạy,

taskkill /im node.exe /f

hữu ích cho góc 4 trong cửa sổ :)
Icarus

3

Chỉ cần khởi động lại IDE bạn đang sử dụng, sau đó nó sẽ hoạt động.


3

Với ctrl + z bạn đặt chương trình ở chế độ nền. Trên Linux, bạn có thể lấy lại phiên làm việc ở phía trước bằng lệnh sau:

fg ng serve

Bạn không cần phải giết quá trình.



2

Trong trường hợp của tôi không có bất kỳ đề cập ở trên làm việc.

PHIÊN BẢN UBUNTU 18.04

Dưới đây lệnh làm việc.

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

2

Nếu bạn đang sử dụng VSCode, bạn có tùy chọn hủy terminal và thêm terminal mới. Đóng tab và mở một tab mới. Nó làm việc cho tôi.

Đã chỉnh sửa: Sử dụng ctrl + c và nhấn y. Với thiết bị đầu cuối cũng bị giết, Bạn có thể tiến hành. Nếu bạn muốn mở một phiên bản mới của studio hình ảnh và chạy một ứng dụng khác, bạn có thể sử dụng ng phục vụ - cổng 4401.


2

Thiết bị đầu cuối VScode trong hệ điều hành Ubuntu sử dụng lệnh sau để giết tiến trình

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

1

Bạn cũng có thể thử với điều này để chạy ứng dụng của bạn trong mã studio trực quan -:

ng serve --open --port 4201

bạn có thể cho bất kỳ số cổng.


1

Họ nói rằng chúng tôi đang chạy các dịch vụ với cổng số 4200, vui lòng sử dụng cổng khác thay vì 4200. Lệnh dưới đây là để giải quyết vấn đề

ng phục vụ - cổng 4300



1

Giết quá trình và đóng thiết bị đầu cuối mà bạn đã sử dụng để chạy ứng dụng trên cổng đó.


1

Thay vì giết toàn bộ quá trình hoặc sử dụng ctrl+z, bạn chỉ cần sử dụng ctrl+cđể dừng máy chủ và có thể vui vẻ sử dụng ng serve commandmà không cần bất kỳ errorshoặc nếu bạn muốn chạy trên một cổng khác chỉ cần sử dụng lệnh này ng serve --port portno(ex: ng serve --port 4201).


1

Dành cho Ubndu 18.04 sudo lsof -t -i tcp: 3000 | xargs giết -9

Nó xảy ra khi cổng bị chấm dứt một cách không cần thiết vì vậy lệnh này sẽ chấm dứt 4200 hoặc 3000 hoặc3300 bất kỳ


0

Tôi cũng gặp phải thông báo lỗi tương tự, vì vậy tôi đã thử phục vụ - cổng 12012 và nó hoạt động tốt.


6
chúng ta không thể rất nhiều cổng mới mọi lúc.
shijin

10
Ai đang nâng cao câu trả lời như thế này?
cá mập1608

0

Nếu bạn biên dịch mã JS góc cạnh của mình trong cả CMD và IDE thì vấn đề này xảy ra. Trong CMD, mã JS góc của bạn sẽ tự động biên dịch bất cứ khi nào bạn thay đổi mã JS góc của mình trong IDE và sau đó IDE của bạn muốn chiếm cùng một cổng tức là 4200 đã bị CMD chiếm giữ. Vì vậy, có một giải pháp đơn giản cho vấn đề này, chỉ cần đóng cmd trong khi biên dịch mã của bạn trong IDE.


0

Tôi đã phải đối mặt với cùng một vấn đề mỗi lần tôi phải giết cảng.

Tôi đã thử ./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0Thay vì npm startvà các tác phẩm của nó

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.