【问题标题】:Run Superset as Service将超集作为服务运行
【发布时间】:2019-01-24 22:29:15
【问题描述】:
我已经在虚拟环境中配置了我的超集,希望将其作为服务运行
我试过使用下面的配置,但它不起作用
[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: [单位]: 未找到
用法:服务 | --status-all | [ 服务名称 [ 命令 |
--full-restart ] ] /etc/init.d/superset: 5: /etc/init.d/superset: [Service]: not found
【问题讨论】:
标签:
daemon
superset
apache-superset
python-daemon
start-stop-daemon
【解决方案1】:
实际上superset runserver 用于开发模式,强烈推荐gunicorn等其他工具用于生产。
无论如何,主要问题是 virutalenv 上的 superset 路径是 $VENV_PATH/bin/superset(通常,像 superset 或airflow 等服务器在此路径上:$VENV_PATH/bin,在 Linux 系统上查找任何应用程序路径的简单方法是使用 which 命令,在这种情况下,您可以使用which 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