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 &
を実行すると、サーバーがすぐにシャットダウンします。
ターミナルでsshセッションを終了した後でも、Djangoアプリケーションを実行し続けるにはどうすればよいですか?
PS-この質問が小学校としてあなたを襲ったら申し訳ありません。このような愚かさは、フロントエンドのJavaScriptプログラマーが途方もない速度でサーバー管理者にならなければならないときに起こります。
会う 画面 。
Ssh、スタート画面を介して接続します。これにより、sshが提供するエミュレーターの上に仮想コンソールエミュレーターが開きます。そこでサーバーを起動します。
次に、Ctrl-aを押してからdを押します。これにより、画面セッションが切り離され、バックグラウンドで実行されたままになります。
[R] e-attachするには、screen-rを使用します。
Screenがインストールされておらず、インストールできない場合は、コマンドに&を追加して、バックグラウンドでアプリケーションを起動することもできます。ただし、ターミナルウィンドウを閉じないでください。 bashコマンドを終了するか、Ctrl-dを押して切断するだけです。
Screenの利点は、エラーなどが発生した場合でも、サーバーからの出力を読み取ることができることです。
Screenは非常に強力なツールであり、さらに多くのコマンドがあります。 Ctrl-a、c(作成用)の順に新しい仮想ウィンドウを追加できます。 Ctrl-a、n(次)またはp(前)、...でウィンドウを切り替えます。
ただし、使用するにはインストールする必要があります。あなたはrootアクセス権を持っているように見えるので、これは問題にはならないはずです。
編集: tmux は、同じユースケースのもう1つの優れたソリューションです。
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]
$
Nohupを使用します。コマンドを次のように変更します。
Nohup Sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &