我已经在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:[服务]:找不到
答案 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