2017-02-19 14 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?? 

私はこのスクリプトを実行すると、私はスクリーンやPythonのサーバーが殺されると入力します。しかし、スクリプトはこの行を実行しなかった:

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/ja/1.10/ref/django-admin/#runserver)。あなたは何をしようとしているのですか? – Chris

+0

@Chris django runserverを再起動するスクリプトを作ろうとしています。なぜなら、django 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

関連する問題