AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1889387
Accepted
berger-devel
berger-devel
Asked: 2025-04-01 19:00:25 +0800 CST2025-04-01 19:00:25 +0800 CST 2025-04-01 19:00:25 +0800 CST

Variáveis ​​de ambiente e systemd

  • 772

Estou instalando o SonarQube Community Build no Ubuntu. Eu instalei o Java de um .tar.gz para /opt/java. Eu adicionei JAVA_HOME=/opt/java/e SONAR_JAVA_PATH=/opt/java/bin/javaao meu arquivo .profile. echo $JAVA_HOMEe echo $SONAR_JAVA_PATHme deu os resultados esperados.

Instalei o SonarQube em /opt/sonarqube e posso iniciá-lo usando /opt/sonarqube/bin/linux-x86-x64/sonar.sh start.

O que ainda não está funcionando é instalá-lo como um serviço systemd. Os logs mostram

Java not found. Please make sure that the environmental variable SONAR_JAVA_PATH points to a Java executable

Este é o arquivo da unidade:

[Unit]
Description=SonarQube Community Build
[Service]
Type=simple
RestartSec=1
User=me
ExecStart=/bin/bash /opt/sonarqube/bin/linux-x86-64/sonar.sh start
WorkingDirectory=/opt/sonarqube
[Install]
WantedBy=multi-user.target

O que estou esquecendo? Obrigado.

ubuntu
  • 2 2 respostas
  • 60 Views

2 respostas

  • Voted
  1. berger-devel
    2025-04-01T19:12:39+08:002025-04-01T19:12:39+08:00

    Acabei de descobrir sobre a tag Environment em arquivos de unidade:

    [Unit]
    ...
    [Service]
    ...
    Environment="SONAR_JAVA_PATH=/opt/java/bin/java"
    [Install]
    ...
    
    • 1
  2. Best Answer
    grawity
    2025-04-01T19:13:51+08:002025-04-01T19:13:51+08:00

    Variáveis ​​de ambiente necessárias para aquele serviço específico devem ser especificadas como parte do serviço, neste caso como [Service] Environment=parâmetros.

    [Service]
    Environment=JAVA_HOME=/opt/java/
    Environment=SONAR_JAVA_PATH=/opt/java/bin/java
    

    A causa original é que ele ~/.profile não será carregado como parte da troca de usuário em geral. 1 Ele é carregado especificamente apenas pelo seu shell (Bash) e somente quando é iniciado no modo "login shell".

    Mas quando você inicia um serviço, o programa ExecStart não é executado por meio de um shell de "login" – ele não é executado por meio de um shell, apenas executado diretamente – então nenhuma personalização específica do shell se aplica, nem ~/.profile nem ~/.bashrc.

    E mesmo que seu ExecStart execute explicitamente um script de shell, esse processo interpretador de script sabe que é um shell não interativo e não carrega nenhum script "rc" ou "profile"; ele sonar.shse comporta como um programa normal e tem apenas o ambiente que herda.

    Em casos raros, você pode bash -l -c "..."forçá-lo a executar como um shell de "login", mesmo que não seja interativo, e, portanto, carregar o ambiente do .profile, mas isso não é necessariamente uma boa ideia, a menos que você saiba que o .profile é bem escrito e não iniciará coisas aleatórias de "iniciar no login".


    1 (E, por falar nisso, User= também não constitui um "login" completo; ele apenas troca o UID/GID e talvez defina um ambiente "mínimo" como HOME. Os serviços geralmente não precisam passar pelo processo de login completo de qualquer maneira. Para os casos raros, PAMName= pode habilitá-lo, mas isso é apenas as etapas "pré-shell" e ainda não inclui o Bash em si. Em outras palavras, o login do usuário no Linux consiste em muitas etapas discretas, quase todas omitidas para serviços.)

    • 1

relate perguntas

  • Integração com putty e Ubuntu

  • Não é possível abrir a porta entre o Windows 10 e a VM do Ubuntu hospedada localmente criada no Hyper-v

  • Erro ssh do contêiner do Docker: ssh_exchange_identification: conexão fechada pelo host remoto

  • O apache2 pode funcionar sem arquivos conf?

  • pasta compartilhada vmwared não está funcionando

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve