Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Port 4200 is already in use" when running the ng serve command

Tags:

angular

I am learning angular 2 and for the first time I am using the angular CLI project to create a sandbox project.

I was able to run the command "ng serve" and it works great. I wanted to stop it from running so I ran "Control Z".

When I tried to run the "ng-serve" command again it gives me "Port 4200 is already in use."

I ran "PS" to get a list of the PID and killed the PID for the angular-cli and ran "ng-serve" again still it gives the same port in use error.

like image 897
peztherez Avatar asked Aug 23 '16 03:08

peztherez


People also ask

What port is NG serve?

By default Angular CLI ng serve command uses port 4200 to run the application.


30 Answers

This is what I used to kill the progress on port 4200

For linux users:

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

You could also try this:

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

For windows users:

Port number 4200 is already in use. Open the cmd as administrator. Type below command in cmd:

netstat -a -n -o

And then, find port with port number 4200 by right click on terminal and click find, enter 4200 in "find what" and click "find next": Let say you found that port number 4200 is used by pid 18932. Type below command in cmd:

taskkill -f /pid 18932

For UNIX:

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

Now run ngf (instead of ng serve) in terminal from the project folder. This will kill all processes using the port 4200 and runs your Angular project.

like image 114
Bart Hoekstra Avatar answered Oct 05 '22 05:10

Bart Hoekstra


Open your cmd.exe as administrator,

then Find the PID of port 4200

netstat -ano | findstr :4200

Pid for port 4200

Here i have 3 PID :

  • Red one is from "ng-serve" (127.0.0.1:4200) that LISTENING
  • Green one is from "your browser"

kill only port 4200 (kill the red PID):

taskkill /PID 15940 /F

note : kill the green one will only lead your browser closed by force.

taskkill pid 15940

now you can do "ng-serve" to start your angular app at the same port 4200




Additional Stuff :

One liner : After looking a way to optimize this, Here is the One-liner command of this answer : (special thanks to : Josep Alsina for this tips)

for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a
like image 35
Anthony Kal Avatar answered Oct 05 '22 06:10

Anthony Kal


On Mac OS X you need the following command:

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

Remember you need to kill Angular's web server with Command+C.

like image 41
Julian Fraser Avatar answered Oct 05 '22 07:10

Julian Fraser


Do not use ctrl+Z, to stop the process you must use ctrl+C

like image 30
Emir Mamashov Avatar answered Oct 05 '22 07:10

Emir Mamashov


Use this command to kill ng:

pkill -9 ng
like image 28
Lolita Avatar answered Oct 05 '22 06:10

Lolita


If you have npm installed, which I assume you have if you are using angular, then you can simply run npx kill-port 4200. That's it.

like image 32
Kapilfreeman Avatar answered Oct 05 '22 06:10

Kapilfreeman


When you use Ctrl+Z, you are going to suspend a running task but not to kill it. You can later use command fg to resume the task. If you want to quit ng serve, you should use Ctrl+C instead, in which will also release the 4200 port.

like image 24
Roman Lo Avatar answered Oct 05 '22 07:10

Roman Lo


ng serve --port <YOUR_GIVEN_PORT_NUMBER>

You should try above command to run on your given port.

like image 33
Shubham Verma Avatar answered Oct 05 '22 07:10

Shubham Verma


In summary there are more than one solution : 1 ) By using another port to define port number ,

ng serve --open --port 4201

2) by killing the process

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

3) Type

netstat -a -n -o

in command prompt then find the related port PID and kill it by

taskkill /F /PID (pid number)

4) Type netstat -ano|findstr :4200

took the foreign address PID which contain the port number and then kill it by

taskkill /PID (pid number)/F

like image 20
Mohaimin Moin Avatar answered Oct 05 '22 07:10

Mohaimin Moin


For Windows:

Open Command Prompt and

type: netstat -a -o -n

Find the PID of the process that you want to kill.

Type: taskkill /F /PID 16876

This one 16876 - is the PID for the process that I want to kill - in that case, the process is 4200 - check the attached file.you can give any port number.

enter image description here

Now, Type : ng serve to start your angular app at the same port 4200

like image 21
Jay Kareliya Avatar answered Oct 05 '22 05:10

Jay Kareliya


Right now you can set --port 0 to get a free port.

ng serve --port 0 // will get a free port for you
like image 27
Yevhen Laichenkov Avatar answered Oct 05 '22 06:10

Yevhen Laichenkov


I am sharing this as the fowling two commands did not do the job on my mac:

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

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

The following one did, but if you were using the integrated terminal in Visual Code, try to use your machine terminal and add the fowling command:

lsof -t -i tcp:4200 | xargs kill -9
like image 20
Ahmed Hadi Avatar answered Oct 05 '22 07:10

Ahmed Hadi


netstat -anp | grep ":4200"

This will tell you who's got the port.

like image 25
Joshua Avatar answered Oct 05 '22 05:10

Joshua


We can forcefully kill the port by following command.

kill -2 $(lsof -t -i:4200)
like image 34
sharath parupati Avatar answered Oct 05 '22 07:10

sharath parupati


The most simple one line command:

 sudo fuser -k 4200/tcp
like image 40
Salman Ahmed Avatar answered Oct 05 '22 07:10

Salman Ahmed


VScode terminal in Ubuntu OS use following command to kill process

lsof -t -i tcp:4200 | xargs kill -9
like image 35
Surendranath Sonawane Avatar answered Oct 05 '22 06:10

Surendranath Sonawane


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

and access using localhost:4201

This should work as a temporary solution.

or

try listing port usage using
lsof -i:4200
and kill it manually using
sudo kill -9 <Process PID using port 4200>

like image 45
shijin Avatar answered Oct 05 '22 07:10

shijin


To stop all the local port running in windows, use this simple comment alone instead searching for pid separatly using netstat,

It find all the pid and stop the local port which is currently running,

taskkill /im node.exe /f
like image 43
saravana va Avatar answered Oct 05 '22 06:10

saravana va


Port 4200 is already in use.Use -port to specify a different port error Reasons An existing application(not angular) in your system using the port number 4200. This is a very rare scenario. In this case, you need to change the port number of angular application as mentioned below. You already ran ng serve and to exit the application you typed Control Z (Ctrl+Z), And then you typed ng serve then you will get port 4200 is already in use_ error. In this case, you need to kill the previous process.

To change the port number for our angular application use the below command

ng serve --port 4201

Now type ng serve

Our angular application will be running on http://localhost:4201

To fix port 4200 is already in use error in In Mac & Linux OS (Ubuntu etc) use the following commands

sudo kill $(sudo lsof -t -i:4200) Or
sudo kill `sudo lsof -t -i:4200` Or
sudo lsof -t -i tcp:4200 | xargs kill -9

In Window operating system open command prompt. Use the following command to fix port 4200 is already in use error.

netstat -a -n -o | findStr "4200"`

Take the process id and kill the process using the following command

taskkill -f /pid 11128
like image 43
Kavinda Senarathne Avatar answered Oct 05 '22 07:10

Kavinda Senarathne


With ctrl + z you put the program in the background. On Linux you can get the session back in the foreground with the following command:

fg ng serve

You don't need to kill the process.

like image 23
Spirit Avatar answered Oct 05 '22 05:10

Spirit


Just restart the IDE you are using, then it will work.

like image 24
aldo Avatar answered Oct 05 '22 05:10

aldo


In my case none of the above mentioned worked.

UBUNTU 18.04 VERSION

Below command worked.

sudo kill -9 $(lsof -i tcp:4200 -t)
like image 41
Alien Avatar answered Oct 05 '22 07:10

Alien


With these three commands:

  1. netstat -anb | findstr 4200
  2. netstat -anbo | findstr 4200
  3. taskkill -f /pid 22416

Cmd => should be run as an administrator

First: check if it is listening or not

C:\Windows\system32>netstat -anb | findstr 4200 

Output:

TCP  127.0.0.1:4200     0.0.0.0:0      LISTENING 

Second: Find IP

C:\Windows\system32>netstat -anbo | findstr 4200 

Output:

TCP    127.0.0.1:4200     0.0.0.0:0    LISTENING    22416 

Third: kill the port

C:\Windows\system32>taskkill -f /pid 22416 

SUCCESS: The process with PID 22416 has been terminated.

You should find your own pid;

like image 25
Baran Goodarzi Avatar answered Oct 05 '22 05:10

Baran Goodarzi


It says already we are running the services with port no 4200 please use another port instead of 4200. Below command is to solve the problem

ng serve --port 4300

like image 27
dharma rao Palli Avatar answered Oct 05 '22 06:10

dharma rao Palli


If you are using VSCode, you have the option to kill terminal and add a new terminal. Close the tab and open a new tab. It worked for me.

Edited: Use ctrl+c and press y. With out killing terminal also, You can proceed. If you want to open a new instance of visual studio and run a different application , you can use ng serve --port 4401.

like image 29
DIBYA RANJAN TRIPATHY Avatar answered Oct 05 '22 05:10

DIBYA RANJAN TRIPATHY


You can also try with this to run your application in visual studio code -:

ng serve --open --port 4201

you can give any port number.

like image 34
HarmesH KaushiK Avatar answered Oct 05 '22 05:10

HarmesH KaushiK


It is possible to change port in .angular-cli file. For example:

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

In addition, it is necessary to add this to your package.json:

"ng": "ng",
"start": "ng serve"
like image 35
StepUp Avatar answered Oct 05 '22 07:10

StepUp


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

This means that you already have another service running on port 4200. If this is the case you can either . shut down the other service. use the --port flag when running ng serve like this:

 ng serve --port 9001

Another thing to notice is that, on some machines, the domain localhost may not work. You may see a set of numbers such as 127.0.0.1. When you run ng serve it should show you what URL the server is running on, so be sure to read the messages on your machine to find your exact development URL.

like image 37
Mohammad Daliri Avatar answered Oct 05 '22 06:10

Mohammad Daliri


you can use fuser -k 4200/tcp if it is Linux Operating system

like image 38
Machhindra Neupane Avatar answered Oct 05 '22 07:10

Machhindra Neupane


Kill process and close the terminal which you used for running the app on that port.

like image 45
Georgi Georgiev Avatar answered Oct 05 '22 06:10

Georgi Georgiev