作为服务运行超集

时间:2019-01-24 22:29:16

标签: daemon superset apache-superset python-daemon start-stop-daemon

我已经在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

虚拟Env文件夹为Superset

以下错误

  

/etc/init.d/superset:1:/etc/init.d/superset:[Unit]:找不到   用法:服务<选项> | --status-all | [service_name [命令|   --full-restart]] /etc/init.d/superset:5:/etc/init.d/superset:[服务]:找不到

1 个答案:

答案 0 :(得分:0)

实际上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