2017-02-19 2 views
0

쉘 스크립트를 사용하여 django runserver를 다시 시작하는 방법은 무엇입니까? 나는 화면 안에 django 서버를 돌렸다.쉘 스크립트는 화면 안에 django runserver를 다시 시작합니다.

이 내 쉘 스크립트 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 + (화면 종료합니다) 쉘 스크립트에서 D를 실행하기를? 고맙습니다.

+0

해킹 된 의사 생산 구성처럼 들립니다. ['runserver'는 프로덕션 환경에서 사용되지 않습니다.] (https://docs.djangoproject.com/en/1.10/ref/django-admin/#runserver). 너 뭐하려고? – Chris

+0

@Chris django runserver를 다시 시작하기위한 스크립트를 만들려고합니다. 때문에 장고 runserver 때로 붙어있다. 나는 지금 개발 단계에있다. 나는 생산에 다른 방법을 사용할 것이다. – Krisnadi

+0

일반적으로'python manage.py' 만 실행하고 열려있는 터미널 창에서 실행되도록합니다. 'screen'과 커스텀 쉘 스크립트를 믹스에 추가함으로써 문제를 복잡하게 만드는 특별한 이유가 있습니까? (killall -9 python은 거의 확실하게 거기에 있어야하는 것이 아니며 아마도'exec'도 필요 없습니다 ...) – Chris

답변

0

runserver 대신 gunicornkill -HUP을 사용하여 서버를 다시로드하십시오.

+0

즉, 개발 서버의 자동 다시로드 기능을 포기해야합니다 ... – Chris

+0

http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes를 참조하십시오. – Udi