Configurando o Apache Superset como um serviço Systemd

1

Eu configurei e configurei o Apache Superset, mas não consigo executá-lo como um Serviço Systemd.

Eu tentei configurá-lo em um virtualenv e usar systemd como isso , mas ainda recebo um erro sobre gunicorn não está disponível e a unidade não consegue iniciar.

Eu também tentei criar um usuário separado para o Superset, instalando o Superset e suas dependências com pip install --user , então a unidade se parece com:

[Unit]
Description=Superset
After=syslog.target network.target

[Service]
User=superset
ExecStart=/home/superset/.local/bin/superset runserver

[Install]
WantedBy=multi-user.target

e ainda não funciona. Olhando para o diário

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]:

executando o comando no bash funciona bem.

Informações sobre o meio ambiente

Ubuntu Linux 16.04

Superconjunto 0.26.3

    
por aphid 14.07.2018 / 21:42

1 resposta

2

Na maioria das vezes, quando existe um arquivo em seu sistema e você recebe uma mensagem de erro informando que ele não foi encontrado, isso significa que o SO não encontra o arquivo na variável de ambiente $PATH .

A maneira mais fácil de fazer com que seu sistema operacional encontre gunicorn é colocar gunicorn em /usr/local/bin , algo que está no caminho padrão.

Adicionar sua localização ao seu caminho só será levado em conta pela sua sessão ativa, uma vez que você fechá-lo, ele será removido, a menos que você o coloque no arquivo /etc/environment e reinicie.

Você também pode configurar o ambiente de serviço:

  • Crie um diretório em /etc/systemd/system/<service_name>.service.d
  • Crie um arquivo no diretório recém-criado e configure o ambiente de serviço como abaixo:

    $ 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

Nota: Como o arquivo que adicionamos não é shell script, ele não suporta expansão de variáveis

escrevendo PATH = $ PATH: / path_to_directory_containing_gunicorn NÃO FUNCIONARÁ Como esperado

  • recarregue a configuração das unidades

    $ systemctl daemon-reload
    
por 14.07.2018 / 22:45