jakobw
jakobw

Reputation:

Django runserver permanent

How can I make the development server from django running permanent? So that it does't stop when I quit the shell.

Thanks

Upvotes: 69

Views: 81684

Answers (8)

MikeN
MikeN

Reputation: 46287

If you are on Linux/Unix use the "nohup" command.

nohup python3 manage.py runserver &

Then to get it back, use the fg command:

fg

Thanks to: Xiong Chiamiov

Upvotes: 69

Travis
Travis

Reputation:

another easy way to do this is to run:

[user@host]$screen
[user@host]$python manage.py runserver 0.0.0.0:8000

Now press Ctrl+A and then press d to exit from this screen.

This creates the server in a screen and then detaches it. This way you can simply go back in and type:

[user@host]$screen -r

and you can take control of the server again and see whats going on.

You can also detach from the screen immediately:

screen -d -m python manage.py runserver 0.0.0.0:8000

Upvotes: 94

Sushant Patil
Sushant Patil

Reputation: 61

For windows you can use following command

python manage.py runserver 0.0.0.0:8000

For ubuntu/linux use

nohup python manage.py runserver 0.0.0.0:8000 &

for go back from nohup command use fg command

fg

Upvotes: 2

Ranvijay sachan
Ranvijay sachan

Reputation: 2444

on Ubuntu run:>./manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 &

>exit

Upvotes: 8

kelorek
kelorek

Reputation: 6214

Like Travis says-- use screen. If you don't already have it installed, go get it:

sudo apt-get install screen
screen

Hit enter. Now it's like you're in a different terminal window.

Start you server with:

python manage.py runserver 0.0.0.0:8000

Now you're running the server, and you'd like to get back to your first screen while letting the django app continue running. Screen has a nice feature built-in for that. To get back to your main terminal type:

ctrl+a d

From there, you can get back to the django screen by typing:

screen -r

If you have multiple screens open you can reach the correct one by it's 4-5 digit ID number:

screen -r 1333

And the man pages are pretty good:

man screen

Upvotes: 32

Adam Nelson
Adam Nelson

Reputation: 8090

I'm just about to do this myself. The scenario is that I'm rapid prototyping for a client and they need to see what things look like. There will never be more than 2-3 people on this at a time, but I don't want to set up Apache or stay logged in.

sudo ./manage.py runserver 192.168.1.94:80 [run this on port 80 so a normal business user can see it]
ctrl+z [to suspend the job (same thing as appending & to the above command but then I don't need to deal with entering the sudo password on the command line)]
bg %1 [puts the job in the background]
jobs [just to see what's going on]
exit [exit the session]

Upvotes: 0

Tomas Andrle
Tomas Andrle

Reputation: 13354

On Windows, run

pythonw.exe manage.py runserver

Upvotes: 1

woakas
woakas

Reputation: 5646

create a file with this, example /tmp/screendjango:

screen python manage.py runserver

and then you put:

screen -dmS django -c /tmp/screendjango

for attach the sessión you put

screen -d -r django.

Upvotes: 3

Related Questions