Apache Supersetを設定して設定しましたが、Systemdサービスとして実行することはできません。
virtualenvで設定してsystemdを試してみました。これしかし、まだGunicornが利用できず、デバイスが起動しないというエラーが発生します。
また、Superset用に別々のユーザーを作成し、Supersetとその依存関係をインストールしてみました。pip install --user
単位は次のとおりです。
[Unit]
Description=Superset
After=syslog.target network.target
[Service]
User=superset
ExecStart=/home/superset/.local/bin/superset runserver
[Install]
WantedBy=multi-user.target
しかし、まだ動作しません。日記を見て
Jul 13 22:54:21 radioactive-man systemd[1]: Started Superset.
Jul 13 22:54:23 radioactive-man superset[24023]: 2018-07-13 22:54:23,893:INFO:root:The Gunicorn 'superset runserver' command is deprecated. Please use the 'gunicorn' command instead.
Jul 13 22:54:23 radioactive-man superset[24023]: /bin/sh: 1: gunicorn: not found
Jul 13 22:54:23 radioactive-man superset[24023]: Starting server with command:
Jul 13 22:54:23 radioactive-man superset[24023]: gunicorn -w 2 --timeout 60 -b 0.0.0.0:8088 --limit-request-line 0 --limit-request-field_size 0 superset:app
Jul 13 22:54:23 radioactive-man superset[24023]:
Bashでコマンドを実行すると、うまく動作します。
環境情報
Ubuntu Linux 16.04
スーパーグループ0.26.3
答え1
$PATH
ほとんどの場合、システムにファイルがあり、ファイルが見つからないというエラーメッセージが表示された場合、オペレーティングシステムは環境変数でファイルを見つけることができません。
オペレーティングシステムがそれを見つけることを可能にする最も簡単な方法gunicorn
は、コンテンツをデフォルトパスに配置することですgunicorn
。/usr/local/bin
パスにその場所を追加することはアクティブセッションでのみ考慮され、閉じると/etc/environment
ファイルに保存して再起動しない限り消えます。
サービス環境を構成することもできます。
- 以下にディレクトリを作成します。
/etc/systemd/system/<service_name>.service.d
新しく作成したディレクトリにファイルを作成し、次のようにサービス環境を構成します。
$ vim /etc/systemd/system/<service_name>.service.d/file.conf [Service] Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/path_to_directory_containing_gunicorn
Esc:wq
注:私たちが追加したファイルはシェルスクリプトではないため、変数拡張はサポートされていません。
PATH=$PATH:/path_to_directory_having_gunicorn 作成期待どおりに動作しません
リロード装置の構成
$ systemctl daemon-reload