Как запустить uwsgi сервер без перехвата консоли?
Только недавно попробовал небольшой тестовый проект развернуть (сам в Python&Django пока двухмесячный опыт только имею). В итоге всё получилось, запустил uwsgi в так называемом "Emperor mode". Используется virtual environment. Устанавливается uwsgi (pip install) в систему, кстати, а не в venv.
Создается файл /etc/init/uwsgi.conf с содержимым:# Emperor uWSGI script

description "uWSGI Emperor"
start on runlevel [2345]
stop on runlevel [06]

exec uwsgi --master --die-on-term --emperor /etc/uwsgi/vassals
В папку /etc/uwsgi/vassals помещаются конфиги проектов (по одному на каждый проект), с примерно таким содержимым:# mysite_uwsgi.ini file
[uwsgi]

## process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 3
# the socket (use the full path to be safe
socket          = /home/user/virtualenvs/mysite/uwsgi.sock
# ... with appropriate permissions - may be needed
chmod-socket    = 666
# clear environment on exit
vacuum          = true
# user, group
uid=mysiteuser
gid=mysitegroup

## Django-related settings
# the virtualenv (full path)
home            = /home/user/virtualenvs/mysite/
# the base directory (full path)
chdir           = /home/user/virtualenvs/mysite/www
# Django's wsgi file
module          = mysite.wsgi
Теперь uswgi управляется как сервис: sudo service uwsgi (start|status|stop|restart и т.п.) и никаких занятых консолей.
Насчет автоперезагрузки при изменении содержимого: пока не пробовал, но думаю вот оно
для разработки можно использовать screen. по крайней мере при разрыве ssh останавливаться не будет.