Как сохранить мой сервер Django даже после закрытия сеанса ssh?
Я понял, как запустить приложение Django с помощью sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80
. Однако после выхода из терминала сервер перестает работать.
Я попытался запустить этот процесс в фоновом режиме, но сервер просто быстро выключается после выполнения sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &
.
Как сохранить приложение Django даже после завершения сеанса ssh в терминале?
PS - Извините, если этот вопрос поражает вас как элементарного. Такая глупость возникает, когда программист javascript-интерфейса должен превращаться в администратора сервера с разрывом.
Ответы
Ответ 1
Встреча screen.
Подключиться через ssh, начать экран. Это откроет эмулятор виртуальной консоли поверх того, предоставленного ssh. Начните свой сервер там.
Затем нажмите Ctrl-a, затем d. Это отделит сеанс экрана, удерживая его в фоновом режиме.
Чтобы [R] подключить к нему, используйте экран -r.
Если экран не установлен, и вы не можете его установить, вы также можете запустить приложение в фоновом режиме, добавив команду a и к команде, как вы пробовали. Но вы не должны закрывать окно терминала; просто отсоедините, с выходом команды bash или Ctrl-d.
Преимущество экрана в том, что вы все равно можете читать вывод с сервера, если есть ошибка или что-то еще.
Экран - действительно мощный инструмент с множеством команд. Вы можете добавить новое виртуальное окно с помощью Ctrl-a, затем c (для Create); переключение через окна с помощью Ctrl-a, затем n (следующий) или p (предыдущий),...
Но вам нужно его установить для его использования. Поскольку у вас, похоже, есть root-доступ, это не должно быть проблемой.
EDIT: tmux - еще одно отличное решение для одного и того же варианта использования.
Ответ 2
Используйте nohup. Измените команду следующим образом:
nohup sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &
Ответ 3
Используйте screen
для создания нового виртуального окна и запустите там сервер.
$ screen
$ python manage.py runserver
Вы увидите, что сервер Django запущен.
Теперь нажмите Ctrl+A
, а затем нажмите клавишу D
, чтобы отсоединиться от этого экрана. Он скажет:
$ [detached from ###.pts-0.hostname]
Теперь вы можете безопасно выйти из своего терминала, зайти в свой терминал, сделать другие биты кодирования в других каталогах, отправиться на каникулы, делать все, что захотите.
Чтобы вернуться к экрану, от которого вы отсоединились,
$ screen -r
Чтобы убить сервер django, просто нажмите Ctrl+C
, как вы бы делали в обычном режиме.
В terminate
этот текущий экран вместо detaching
с этого экрана, используйте Ctrl+D
. Он скажет:
$ [screen is terminating]
$