Reputation:
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
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
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
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
Reputation: 2444
on Ubuntu run:>./manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 &
>exit
Upvotes: 8
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
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
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