仮想環境を起動およびアクティブ化するためのsystemdスクリプトは適用されません。

仮想環境を起動およびアクティブ化するためのsystemdスクリプトは適用されません。

フラスコアプリケーションをシステム化しようとしています。私は次のスクリプトを書こうとしています。

#!/bin/bash
cd /path/to/app
source venv/bin/activate
python start.py

.service ファイルでこのスクリプトを実行するだけです。しかし、サービスの起動時にエラーが発生するため、これは完全には機能しません。

Python:コマンドが見つかりません

実際には多くの問題がありましたが、ついにサービスファイルで解決しました。

[Service]
WorkingDirectory=/path/to/app
ExecStart=/path/to/app/venv/bin/python start.py

それ以外の場合は、WorkingDirectory静的ファイルが見つからないため、ファイルパスが機能しないようです。

だから私の質問は、実際に上記のスクリプトが最初に機能しない理由です。適用されましたが、cdvenvはアクティブですか?

ベストアンサー1

さて、私は最近この問題を経験しましたが、迅速な解決のために次のコードを入力しました。

#!/bin/bash

source venv/bin/activated
python start.py

bashシェルスクリプトxyz.sh- 私はにありますExecStart。たぶんこれが最善の選択ではないかもしれませんが...私の場合はうまくいきます。

なぜこれがうまくいかないのですか?

Userいいですね。とGroupの定義を知りたいです[Service]。これがなければ、rootユーザーを使用しています...時々これが必要です(追加の環境変数)。

おすすめ記事