2009-07-27 18 views
43

djangoから開発サーバーを永続的に稼働させるにはどうすればよいですか?私がシェルをやめると止まらないように。Django runserver permanent

おかげ

+5

プロダクションサーバーでの使用をご希望でないことを希望します。あなたがいるなら、それはあなたを悪だけに導くでしょう。 – wlashell

+1

開発中は、シェルを開いておくだけです。これは本番用ではありません! – Soviut

+5

ベータテスター? – panchicore

答えて

42

あなたは、Linux/Unixの上にある場合は "nohupは" コマンドを使用します。

その後
nohup manage.py runserver & 

、それを取り戻すのFGコマンドを使用するには:

fg 

のおかげ:熊Chiamiov

+1

それから元に戻すには、fgコマンドを使用します。 –

+0

これは、ジョブが実行されるときにシェルを終了することを許可しません。右? –

+1

@Adam N.あなたはシェルを終了することができます。nohupは "no hangup"のためのもので、シェルを離れるとジョブを実行し続けます。 – MikeN

50

はこれを行うには、別の簡単な方法を実行することです:

[[email protected]]$screen 
[[email protected]]$python manage.py runserver 0.0.0.0:8000 

Ctrl+Aを押してから、dを押してこの画面を終了します。

これは、サーバーを画面に作成してから切り離します。あなたは、単にと型に戻ることができますこの方法:起こっていただきました!あなたは再びサーバーの制御を取ると見ることができる

[[email protected]]$screen -r 

と。

+1

ログアウトして画面に戻ることはできますか? –

+0

@AdamNelsonはい、画面セッションを明示的に終了しないと、ログアウトを過ぎても実行され続けます。 – 0sh

+1

この解決策の1つの問題は、サーバを起動するとサーバコンソールが起動し、端末にコマンドを与えることができないため、画面を実行できないということです。-dメソッド – Freestyle076

2

たとえば、を/ tmp/screendjangoこれでファイルを作成します。

screen python manage.py runserver 

、その後、あなたが置く:あなたは

screen -d -r django. 
+1

これは、これまでスクリーンを使用する最も複雑な方法だと思います。 –

0

を入れて、セッションを付けるための

screen -dmS django -c /tmp/screendjango 

をWindowsでは、

を実行します。
pythonw.exe manage.py runserver 
0

私はこれを自分自身でやっています。このシナリオでは、クライアントのためのラピッドプロトタイピングであり、どのようなものかを確認する必要があります。そこ時点で、この上に複数の2-3人になることはありませんが、私は、Apacheを設定したり、ログインして滞在する必要はありません。

sudo ./manage.py runserver 192.168.1.94:80 [run this on port 80 so a normal business user can see it] 
ctrl+z [to suspend the job (same thing as appending & to the above command but then I don't need to deal with entering the sudo password on the command line)] 
bg %1 [puts the job in the background] 
jobs [just to see what's going on] 
exit [exit the session] 
22

トラヴィスsays--利用画面のように。まだインストールしていない場合は、次のURLにアクセスしてください:

sudo apt-get install screen 
screen 

Enterを押してください。今はあなたが別の端末ウィンドウにいるようなものです。

スタートとあなたのサーバー:

python manage.py runserver 0.0.0.0:8000 

は今、あなたは、サーバーを実行している、とあなたはDjangoアプリケーションの動作を続行させながら戻ってあなたの最初の画面に取得したいのですが。スクリーンには素晴らしい機能が組み込まれています。あなたは、正しいものを達することができる複数の画面を開いている場合は

screen -r 

を:あなたのメインの端末タイプに戻って取得するには:そこから

ctrl+a d 

、次のように入力してバックDjangoの画面に取得することができますそれは4-5桁のID番号です:

screen -r 1333 

そしてmanページはかなり良いです:

man screen 
+0

私はあなたのソリューションに非常に興味があります。 CentOSを使っているので、 'pipl install screen'を使う必要がありました。インストールは成功しましたが、 'screen'と打って-bash:screen:コマンドが見つかりません。何か案は?ありがとう – Dmitry

+1

@dmitrymarあなたが正常に画面をインストールしている場合でも、あなたのPATHにないようです。 piplがどこにインストールされているか把握し、それがインストールされたディレクトリがPATHにあることを確認します。 'echo $ PATH'をチェックして現在のパスを確認してください。そしてあなたのシェルがパスのどこかでそれを見ていることを確認する '' screen '。 – kelorek

9
on Ubuntu run:>./manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 & 

>exit 
+0

+1これは簡単で、CentOSでも動作することを確認できます(プラットフォーム固有の理由は考えられません)。 – cderwin

+0

ありがとう。よく働く!!! – thedp

関連する問題