2017-02-19 27 views
0

Как перезапустить django runningerver с помощью сценария оболочки? Я запустил сервер django внутри экрана.Сценарий оболочки для перезапуска django runerver внутри экрана

это мой сценарий оболочки restartpython.sh:

killall -9 python 
screen -r 
sleep 5 
exec python manage.py runserver 0.0.0.0:8000 
ctrl+a d   # how to make this into shell script?? 

, когда я выполнить этот сценарий, я войти в экран и сервер Питон убит. но сценарий не запустить эту строку:

exec python manage.py runserver 0.0.0.0:8000 

Он показывает эту ошибку:

python: can't open file 'manage.py': [Errno 2] No such file or directory 

Кроме того, как запустить Ctrl + A D в сценарий оболочки (для выхода из экрана) ?. Спасибо.

+0

Это звучит как взломанная псевдопроизводственная конфигурация. ['runningerver' не предназначен для использования в производстве] (https://docs.djangoproject.com/en/1.10/ref/django-admin/#runserver). Что ты пытаешься сделать? – Chris

+0

@Chris Я пытаюсь создать скрипт для перезапуска сервера django. потому что иногда запускается сервер django. Я все еще на стадии разработки. я буду использовать другой метод для производства. – Krisnadi

+0

Обычно я запускаю 'python manage.py' и оставляю его запущенным в открытом окне терминала. Есть ли какая-то особая причина, по которой вы усложняете вопросы, добавляя в микс 'screen' и собственный скрипт оболочки? (Обратите внимание, что 'killall -9 python' почти наверняка не является чем-то, что должно быть там. И вам, вероятно, не нужно' exec' либо ...) – Chris

ответ

0

Вместо сервера запуска используйте gunicorn и kill -HUP для перезагрузки сервера.

+0

Это означает отказ от функции автоматической перезагрузки сервера разработки ... – Chris

+0

См. Http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes – Udi