2

我已经在 Virtual env 中配置了我的超集,想要将它作为服务运行,我尝试使用下面的配置,但它不起作用

[Unit]
Description=superset service
After=network.target

[Service]
Type=simple
User=superset
Group=superset
Environment=PATH=/home/ubuntu/code/superset:$PATH
Environment=PYTHONPATH=/var/superset/superset:$PYTHONPATH
ExecStart=/home/ubuntu/code/superset/superset runserver 

[Install]
WantedBy=multi-user.target

虚拟环境文件夹是超集

以下错误

/etc/init.d/superset: 1: /etc/init.d/superset: [Unit]: not found 用法: service < option > | --status-all | [ 服务名称 [ 命令 | --full-restart ] ] /etc/init.d/superset: 5: /etc/init.d/superset: [服务]: 未找到

4

1 回答 1

3

实际上,superset runserver它用于开发模式,强烈推荐其他工具,如gunicorn用于生产。无论如何,主要问题是virutalenv上的超集路径是(通常是处理二进制应用程序的应用程序,如superset气流,以及此路径上的服务器等服务器:并且在 Linux 系统上找到任何应​​用程序路径的简单方法是使用哪个命令,在这种情况下,您可以使用它来查找超集路径)。$VENV_PATH/bin/superset$VENV_PATH/binwhich superset

这是我在生产中使用的超集服务文件,希望对你有用:

[Unit]
Description = Apache Superset Webserver Daemon
After = network.target

[Service]
PIDFile = /home/superset/superset-webserver.PIDFile
User = superset
Group = superset
Environment=SUPERSET_HOME=/home/superset
Environment=PYTHONPATH=/home/superset
WorkingDirectory = /home/superset
ExecStart =/home/superset/venv/bin/python3.7 /home/superset/venv/bin/gunicorn --workers 8 --worker-class gevent  --bind 0.0.0.0:8888 --pid /home/superset/superset-webserver.PIDFile superset:app
ExecStop = /bin/kill -s TERM $MAINPID


[Install]
WantedBy=multi-user.target

于 2019-12-23T09:46:25.590 回答