Django использует 'Python manage.py' runserver вместо Gunicorn - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть проект django, размещенный на экземпляре amazon ec2 linux.Для запуска моего приложения также, когда раздел закрыт, я использую Gunicorn, но я испытываю некоторые ошибки и ухудшение производительности.Когда я запускаю команду:

python manage.py runserver

из терминала все прекрасно работает, но при закрытии раздела приложение не работает.

КакМогу ли я запустить команду "python manage.py runserver" для работы навсегда (пока я не убью ее) в фоновом режиме и в случае закрытой сессии?

Я знаю, что есть uWSGI, но я предпочитаю, если возможно, использовать напрямую django.родная команда.

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 12 сентября 2018

для этого вы можете использовать экран просто запустить новый экран и запустить python manage.py runserver

0 голосов
/ 12 сентября 2018

Вы можете установить и использовать tmux , если хотите запускать свои скрипты в фоновом режиме даже после закрытия соединений SSH и mosh

$ sudo apt-get install tmux

затем запустите его с помощью команды $ tmux откроется новая оболочка просто выполните вашу команду

$ python manage.py runserver 0.0.0.0:8000

0.0.0.0: 8000 здесь автоматически получат разрешенные хосты. Теперь вы можете отключить сеанс tmux, чтобы запустить его в фоновом режиме, используя CTRL + B , а затем нажать D

Теперь вы можете выйти из терминала, но ваша команда продолжает работать в tmux. Просто изучите основные команды для использования tmux из здесь

0 голосов
/ 12 сентября 2018

Здесь происходит то, что сценарий прерывается сигналом SIGHUP, когда ваша сессия закрыта. Чтобы преодолеть эту проблему, существует инструмент под названием nohup, который не передает SIGHUP в программу / скрипт, который он выполняет. Используйте его следующим образом:

nohup python manage.py runserver &

(обратите внимание на & в конце, это необходимо, чтобы manage.py работал в фоновом режиме, а не на переднем плане).

По умолчанию nohup перенаправляет вывод в файл nohup.out, поэтому вы можете использовать tail -f nohup.out для просмотра вывода / журналов вашего приложения Django.

Обратите внимание, однако, что manage.py runserver - это , который не должен использоваться в производстве . Для производства вы действительно должны использовать подходящий WSGI-сервер, такой как uWSGI или Gunicorn.

...