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?
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.
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…
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~~~~~
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.
One liner..
pkill -f runserver
You can Quit the server by hitting CTRL-BREAK.
Try this
lsof -t -i tcp:8000 | xargs kill -9
Ctrl+c should work. If it doesn’t Ctrl+/ will force kill the process.
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.
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
Then use this to kill the process
taskkill /PID PUT_THE_PID_HERE /F
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?
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.
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…
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~~~~~
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.
One liner..
pkill -f runserver
You can Quit the server by hitting CTRL-BREAK.
Try this
lsof -t -i tcp:8000 | xargs kill -9
Ctrl+c should work. If it doesn’t Ctrl+/ will force kill the process.
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.
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
Then use this to kill the process
taskkill /PID PUT_THE_PID_HERE /F