私はFlaskをRapsberry Piに設定し、Pythonで作成したxmlファイルのサーバーとして機能する目的でのみ使用しています= iPadアプリ(iRule)にデータを渡すスクリプト。
私のRPIはヘッドレスとしてセットアップされており、私のアクセスは、PuTTY、WinSCP、およびTightVNC Viewerを使用するWindows 10で行われます。
ターミナルウィンドウと次のコマンドを開いてサーバーを実行します。
Sudo python app1c.py
これでサーバーがセットアップされ、xmlファイルにかなりうまくアクセスできます。しかし、WindowsマシンとPuTTYセッションをオフにすると、Flaskサーバーがシャットダウンします。
WindowsマシンがオフになっていてもFlaskサーバーが続行するように設定するにはどうすればよいですか?
Flaskのドキュメントを読みました:
Flaskの組み込みサーバーは軽量で使いやすいものですが、拡張性が低く、デフォルトでは一度に1つのリクエストしか処理しないため、本番環境には適していません。
次に、FlaskアプリケーションをWSGIサーバーにデプロイする方法の例を示します!私が扱っている単純なアプリケーションを考えると、これは必要ですか?
複数のオプションがあります。
&
でプロセスを切り離します。例:$ Sudo python app1c.py&
中:apt-get install tmux
でtmuxをインストールし、以前と同じようにtmuxを起動してアプリを起動し、CTRL + Bでデタッチします。
Complexer:読み取り あなたのflask wsgiサーバーでスクリプトを実行-uwsgi、gunicorn、nginx。
使用する:
$Sudo python app1c.py >> log.txt 2>&1 &
">> log.txt"は、すべてのstdoutをlog.txtファイル内にプッシュします(アプリケーションログを確認できます)
"2>&1"は、すべてのstderrをlog.txtファイル内にプッシュします(これにより、すべてのエラーログがlog.txt内にプッシュされます)
最後の「&」は、バックグラウンドで実行します。
このコマンドを実行した直後にプロセスIDを取得し、監視または確認できます。
$Sudo ps -ef | grep <process-id>
それが役に立てば幸い..!!
Nodeパッケージforeverをここにインストール https ://www.npmjs.com/package/forever
次に使用
forever start -c python your_script.py
スクリプトをバックグラウンドで開始します。後で使用できます
forever stop your_script.py
スクリプトを停止する
私は常に、このような使用例に最適な分離スクリーンプロセスを見つけてきました。実行:screen -m -d Sudo python app1c.py
使用する:
$ Sudo Nohup python app1c.py > log.txt 2>&1 &
Nohup
を使用すると、シェルからログアウトした後もバックグラウンドで実行を継続できるコマンド/プロセスまたはシェルスクリプトを実行できます。
> log.txt
:このファイルへの出力を前もって行います。
2>&1
:すべてのstderrをstdoutに移動します。
最終 &
を使用すると、現在のシェルでコマンド/プロセスをバックグラウンドで実行できます。
いつでもNohupを使用して、スクリプトをバックグラウンドプロセスとして実行できます。
Nohup python script.py
これにより、スクリプトがバックグラウンドで実行され、script.py is storeディレクトリにあるNohup.outファイルにログが追加されます。
Ctrl + Cキーを押さずにターミナルを閉じてください。これにより、ログアウトしてもバックグラウンドで実行できます。
実行を停止するには、再度sshでpiにアクセスし、ps -ef |grep Nohup
およびkill -9 XXXXX
を実行します。ここで、XXXXはpsコマンドを取得するpidです。