ng serve 명령을 실행할 때“포트 4200이 이미 사용 중입니다”


179

나는 각도 2를 배우고 있으며 처음으로 각도 CLI 프로젝트를 사용하여 샌드 박스 프로젝트를 만들고 있습니다.

"ng serve"명령을 실행할 수 있었고 훌륭하게 작동합니다. "Control Z"를 실행하도록 실행을 중지하고 싶었습니다.

"ng-serve"명령을 다시 실행하려고하면 "포트 4200이 이미 사용 중입니다"라는 메시지가 표시됩니다.

PID 목록을 얻기 위해 "PS"를 실행하고 angular-cli에 대한 PID를 종료하고 "ng-serve"를 다시 실행했지만 여전히 동일한 포트 사용 오류가 발생합니다.


평생 Windows 개발자로 지난 몇 개월 동안 Mac에서 보냈고 CMD + Z를 사용하도록 교육했습니다. CTRL + C 대신 CTRL + Z를 기본값으로 사용하면서 Windows에서이 문제를 다시 시작했습니다.
Kildareflare

Visual Studio 코드에서 작업중인 경우 닫고 다시 시작하십시오.
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'

이제 프로젝트 폴더의 터미널에서 ng serve 대신 ngf를 실행 하십시오 . 포트 4200을 사용하는 모든 프로세스가 종료되고 Angular 프로젝트가 실행됩니다.


3
이것이 올바른 해결책이라는 것을 알고 있지만 이것이 끔찍한 해결책이 아닌 것 같습니까? ng serve다른 디렉토리 에서 실행하려면 어떻게합니까? 이 방법으로 서버를 종료 한 다음 다른 곳에서 서버를 다시 시작하거나 뭔가 빠졌습니까?
Nathan Dunn

6
다음과 같이 다른 포트를 지정할 수 있습니다. --port <new_port>
estellezg

4
기본 브라우저가 종료됩니다. 도움이되지 않습니다.
shijin 2016 년

7
이것은 내 브라우저 창을 살해했습니다. 나는 결국 그것을 알아 냈습니다 ... 나는 ^Z기본 포트를 사용하고 있던 기존의 각도 인스턴스를 수행했습니다 .
quietContest

1
Windows에서 포트 4200을 사용하는 pid를 빠르게 확인하려면 netstat -a -n -o | findstr 4200
penta

186

당신을 열고 cmd.exe으로 administrator,

그런 다음 PIDport 4200

netstat -ano | findstr :4200

포트 4200 용 Pid

여기에 3 PID가 있습니다 :

  • 빨간색은 "ng-serve"(127.0.0.1:4200)에서 나온 것입니다. LISTENING
  • 녹색은 "브라우저"에서 나온 것입니다.

포트 4200 만 종료 (빨간색 PID 종료) :

taskkill /PID 15940 /F

참고 : 녹색을 죽이면 브라우저가 강제로 닫힙니다.

태스크 킬 pid 15940

이제 "ng-serve"를 사용하여 같은 포트 4200에서 각도 앱을 시작할 수 있습니다




추가 사항 :

하나 라이너 : 여기,이를 최적화 할 수있는 방법을 찾고 후이 답변의 한 줄의 명령은 다음과 같습니다 (특별 감사에 : 조셉 Alsina 이 팁)

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

2
하지 cmd말고하도록하십시오 Git Bash.
Leo

2
Windows에서 GitBash 용 Syntsax netstat -ano | findstr : 4200; taskkill -PID <establishedPID> -F
intotecho 2018 년

GIt Bash를 업데이트하면 내 문제가 해결됩니다
Ismail Farooq

90

Mac OS X에서는 다음 명령이 필요합니다.

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

Command + C를 사용하여 Angular의 웹 서버를 종료해야합니다.


우분투에서도 일했습니다.
Becario Senior

2
command + C는 프로세스를 종료하는 열쇠입니다. 자신과 다른 서둘러 언론 명령 + z는 프로세스를 죽이지 않고 중단합니다.
Jasmeet

2
@jasmeet Command + Z를 누르면 여러 번 나도 얻었습니다!
줄리안 프레이저

26

ctrl + Z가 아니라 ctrl + C 중지를 위해 실행해야합니다.


기술적으로 OP 질문에 응답하지 않더라도 문제에 대한 가장 간단한 해결책
Florian

내 생각 @Flo 솔루션, 내 대답은 이유가되지 효과 수정하기 때문에
에미 르 Mamashov

16

ng를 종료하려면이 명령을 사용하십시오.

pkill -9 ng

3
내 우분투 18.04에서 사용했습니다. 내 화면을 번쩍와 우분투 모든 응용 프로그램을 죽이는 로그인에 걸렸다
srv_sud을

이것은 결국 나를 위해 작동 다른 모든 apps.But이 ..thanks 죽이기
Sakthikanth

13

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

주어진 포트에서 실행하려면 위의 명령을 시도해야합니다.


우분투 18에서 잘 작동
마크 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

나는 두 가지 명령이 내 Mac에서 작업을 수행하지 않았기 때문에 이것을 공유하고 있습니다.

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

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

다음 중 하나를 수행했지만 Visual Code에서 통합 터미널을 사용하는 경우 컴퓨터 터미널을 사용하고 새 명령을 추가하십시오.

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

감사합니다. 우분투 OS에서 VScode 터미널을 사용하고 있으므로 위의 모든 대답이 작동하지 않습니다.
SURENDRANATH S

4
netstat -anp | grep ":4200"

누가 포트를 가지고 있는지 알려줍니다.


-anp입니까? 명령이 "nestat : option requires argument --p"를 요청했기 때문에 아무것도 반환하지 않았으므로 공간을 추가했습니다.
peztherez

귀하의 netstat는 내 것과 달라야합니다. OS 태그를 추가하십시오.
Joshua

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

Windows에서 실행되는 모든 로컬 포트를 중지하려면 netstat를 사용하여 pid를 별도로 검색하는 대신이 간단한 주석 만 사용하십시오.

모든 pid를 찾아 현재 실행중인 로컬 포트를 중지합니다.

taskkill /im node.exe /f

windows의 각도 4에 도움이 됨 :)
Icarus

3

사용중인 IDE를 다시 시작하면 작동합니다.


3

ctrl + z를 사용하면 백그라운드에서 프로그램을 넣습니다. Linux에서는 다음 명령을 사용하여 포 그라운드에서 세션을 다시 가져올 수 있습니다.

fg ng serve

프로세스를 종료 할 필요가 없습니다.



2

제 경우에는 위에서 언급 한 어느 것도 효과가 없었습니다.

우분투 18.04 버전

아래 명령이 작동했습니다.

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

2

VSCode를 사용하는 경우 터미널을 종료하고 새 터미널을 추가 할 수 있습니다. 탭을 닫고 새 탭을 엽니 다. 그것은 나를 위해 일했다.

편집 : ctrl + c를 사용하고 y를 누르십시오. 살해 단말기도없이 진행할 수 있습니다. Visual Studio의 새 인스턴스를 열고 다른 응용 프로그램을 실행하려는 경우 ng serve --port 4401을 사용할 수 있습니다.


2

Ubuntu OS의 VScode 터미널은 다음 명령을 사용하여 프로세스를 종료합니다.

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

1

Visual Studio 코드에서 응용 프로그램을 실행하기 위해이 작업을 시도 할 수도 있습니다.

ng serve --open --port 4201

모든 포트 번호를 제공 할 수 있습니다.


1

포트 번호가 4200 인 서비스를 이미 실행하고 있다고 말하면 4200 대신 다른 포트를 사용하십시오. 아래 명령은 문제를 해결하는 것입니다.

ng serve --port 4300




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

나는 또한 동일한 오류 메시지에 직면하여 ng serve --port 12012를 시도했지만 정상적으로 작동했습니다.


6
우리는 매번 새로운 포트를 만들 수 없습니다.
shijin 2016 년

10
이런 답변을 누가지지합니까?
shark1608

0

CMD와 IDE에서 각도 JS 코드를 컴파일하면이 문제가 발생합니다. CMD에서 앵귤러 JS 코드는 IDE에서 앵귤러 JS 코드를 변경할 때마다 자동으로 컴파일 된 다음 IDE가 동일한 포트, 즉 이미 CMD가 차지하는 4200을 차지하려고합니다.이 문제에 대한 간단한 해결책이 있습니다. IDE에서 코드를 컴파일하는 동안 cmd.


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.