django development server, how to stop it when it run in background?

Question:

I use a Cloud server to test my django small project, I type in manage.py runserver and then I log out my cloud server, I can visit my site normally, but when I reload my cloud server, I don’t know how to stop the development server, I had to kill the process to stop it, is there anyway to stop the development?

Asked By: bricks

||

Answers:

As far as i know ctrl+c or kill process is only ways to do that on remote machine.
If you will use Gunicorn server or somethink similar you will be able to do that using Supervisor.

Answered By: wolendranh

The answer is findable via Google — and answered in other forums. Example solution is available on the Unix & Linux StackExchange site.

To be explicit, you could do:

ps auxw | grep runserver

This will return the process and its respective PID, such as:

de        7956  1.8  0.6 540204 55212 ?        Sl   13:27   0:09 /home/de/Development/sampleproject/bin/python ./manage.py runserver

In this particular case, the PID is 7956. Now just run this to stop it:

kill 7956

And to be clear / address some of the comments, you have to do it this way because you’re running the development server in the background (the & in your command). That’s why there is no “built-in” Django stop option…

Answered By: user

well it seems that it’s a bug that django hadn’t provided a command to stop the development server . I thought it have one before~~~~~

Answered By: bricks

From task manager you can end the python tasks that are running.
Now run python manage.py runserver from your project directory and it will work.

Answered By: Ramandeep Singh

One liner..

pkill -f runserver
Answered By: archit gupta

You can Quit the server by hitting CTRL-BREAK.

Answered By: Mahesh

We can use the following command.

-> netstat -ntlp

then we will get number of process running with PID, find our python server PID and Kill process.

-> kill -9 PID

For example:
enter image description here

Answered By: Willie Cheng

Try this

lsof -t -i tcp:8000 | xargs kill -9
Answered By: Peter Wauyo

Ctrl+c should work. If it doesn’t Ctrl+/ will force kill the process.

Answered By: timotaoh

Programmatically using a .bat script in Command Prompt in Windows:

@ECHO OFF
SET /A port=8000
FOR /F "tokens=5" %%T IN ('netstat -ano ^| findstr :%port%') DO (
    SET /A processid=%%T
    TASKKILL /PID %%T /F
)

gives

SUCCESS: The process with PID 5104 has been terminated.

Answered By: Alfred Wallace

This worked for me on windows.

Use the below command to list all connections and listening ports (-a) along with their PID (-o).

netstat -a -o

Find the PID of the process

Then use this to kill the process

taskkill /PID PUT_THE_PID_HERE /F
Answered By: Hussain Shaikh
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.