Django Server Error: port is already in use

PythonDjango

Python Problem Overview


Restarting the Django server displays the following error:

this port is already running....

This problem occurs specifically on Ubuntu and not other operating systems. How can I free up the port to restart the server?

Python Solutions


Solution 1 - Python

A more simple solution just type sudo fuser -k 8000/tcp. This should kill all the processes associated with port 8000.

EDIT:

For osx users you can use sudo lsof -t -i tcp:8000 | xargs kill -9

Solution 2 - Python

netstat -ntlp

It will show something like this.

   Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State           PID/Program name    
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      6599/python         
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      -                   
tcp        0      0 192.168.124.1:53        0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::3306                 :::*                    LISTEN     

So now just close the port in which Django/python running already by killing the process associated with it.

kill -9 PID

in my case

kill -9 6599

Now run your Django app.

Solution 3 - Python

ps aux | grep -i manage

after that you will see all process 


ubuntu@ip-10-154-22-113:~/django-apps/projectname$ ps aux | grep -i manage
ubuntu    3439  0.0  2.3  40228 14064 pts/0    T    06:47   0:00 python manage.py runserver project name
ubuntu    3440  1.4  9.7 200996 59324 pts/0    Tl   06:47   2:52 /usr/bin/python manage.py runserver project name
ubuntu    4581  0.0  0.1   7988   892 pts/0    S+   10:02   0:00 grep --color=auto -i manage


kill -9 process id


e.d kill -9 3440


`enter code here`after that :

python manage.py runserver project name

Solution 4 - Python

By default, the runserver command starts the development server on the internal IP at port 8000.

If you want to change the server’s port, pass it as a command-line argument. For instance, this command starts the server on port 8080:

python manage.py runserver 8080

Solution 5 - Python

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

Solution 6 - Python

Sorry for comment in an old post but It may help people

Just type this on your terminal

killall -9 python3

It will kill all python3 running on your machine and it will free your all port. Greatly help me when to work in Django project.

Solution 7 - Python

We don't use this command { sudo lsof -t -i tcp:8000 | xargs kill -9 } Because it's close all tabs...You should use to

>ps -ef | grep python

>kill -9 process_id

ps -ef | grep python (show all process with id)

kill -9 11633 (11633 is a process id to :- /bin/python manage.py runserver)

Solution 8 - Python

>> ps aux | grep manage

 ubuntu    3438  127.0.0  2.3  40256 14064 pts/0    T    06:47   0:00 python manage.py runserver

>> kill -9 3438

Solution 9 - Python

This is an expansion on Mounir's answer. I've added a bash script that covers this for you. Just run ./scripts/runserver.sh instead of ./manage.py runserver and it'll work exactly the same way.

#!/bin/bash

pid=$(ps aux | grep "./manage.py runserver" | grep -v grep | head -1 | xargs | cut -f2 -d" ")

if [[ -n "$pid" ]]; then
    kill $pid
fi

fuser -k 8000/tcp
./manage.py runserver

Solution 10 - Python

Type 'fg' as command after that Ctrl-C.
Command:
Fg will show which is running on background. After that Ctrl-C will stop it.

> fg
> ctl-c

Solution 11 - Python

  1. In terminal, Type ps aux | grep runserver
  2. Hit Enter
  3. Use PID among the result execute kill -9 <PID>

For an instance, If result of step 1 is as follow

root      1041  0.0  0.1 266912 34580 pts/3    S+   11:31   0:01 python3 manage.py runserver 0.0.0.0:3030
root      1696  4.5  0.1 126128 40708 ?        S    Feb14 925:43 /usr/local/bin/python manage.py runserver 0.0.0.0:8000

1041 and 1696 are PIDs. We need to choose whichever process we want to kill among them.

Solution 12 - Python

For me, this happens because my API request in Postman is being intercepted by a debugger breakpoint in my app... leaving the request hanging. If I cancel the request in Postman before killing my app's server, the error does not happen in the first place.

--> So try cancelling any open requests you are making in other programs.

On macOS, I have been using sudo lsof -t -i tcp:8000 | xargs kill -9 when I forget to cancel the open http request in order to solve error = That port is already in use. This also, complete closes my Postman app, which is why my first solution is better.

Solution 13 - Python

Click the arrow in the screenshot and find the bash with already running Django server. You were getting the message because your server was already running and you tried to start the server again.

enter image description here

Solution 14 - Python

if you have face this problem in mac you just need to open activity monitor and force quite python then try again

enter image description here

Solution 15 - Python

In case You are using the VSC's screen terminal, The error might be due to the fact that you already runserver in some other shell.

Just click on the dropbox on the left of the + sign in the header of the terminal of VSC and select some other shell and check if the server is already running there. Quit that server and you are ready to launch a another server.

Solution 16 - Python

Dont use CTRL + Z to stop server, use CTRL + C to stop the server, I had also had the same problem in my linux (fedora) , I used to stop the server using CTRL + Z and again I used to kill the server using sudo fuser -k 8000/tcp command, which worked fine. But later when I started using CTRL + C , I didnot get that port running issue anymore.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAshish Kumar SaxenaView Question on Stackoverflow
Solution 1 - PythonMounirView Answer on Stackoverflow
Solution 2 - PythonShekhar Singh ChoudharyView Answer on Stackoverflow
Solution 3 - PythonAshish Kumar SaxenaView Answer on Stackoverflow
Solution 4 - PythonFreddyView Answer on Stackoverflow
Solution 5 - PythonNandyView Answer on Stackoverflow
Solution 6 - PythonAntuView Answer on Stackoverflow
Solution 7 - PythonMr SinghView Answer on Stackoverflow
Solution 8 - PythonBasant RulesView Answer on Stackoverflow
Solution 9 - PythonjstaabView Answer on Stackoverflow
Solution 10 - PythonmahbubcsejuView Answer on Stackoverflow
Solution 11 - PythonRahul RahatalView Answer on Stackoverflow
Solution 12 - PythonKalanosView Answer on Stackoverflow
Solution 13 - PythonPython NewbieView Answer on Stackoverflow
Solution 14 - PythonAhmed SafadiView Answer on Stackoverflow
Solution 15 - PythonYash VermaView Answer on Stackoverflow
Solution 16 - PythonBickky SahaniView Answer on Stackoverflow