Variável de ambiente para JETTY_HOME não funciona

Variável de ambiente para JETTY_HOME não funciona

Eu adicionei uma variável de ambiente para o jetty seguindoesta respostamas ainda recebo JETTY_HOME not seterro:

root@b:/opt# echo $JETTY_HOME
/opt/jetty
root@b:/opt# service jetty start
** ERROR: JETTY_HOME not set, you need to set it or install in a standard location
root@b:/opt# 

Esta é a minha /etc/environmentaparência:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games":
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java":
JETTY_HOME=/opt/jetty

O que estou fazendo de errado?

Responder1

Este é um erro bastante frustrante com pouca ajuda disponível. Pensei em postar minha solução aqui para alguém que está procurando resolver o mesmo problema.

De qualquer forma, a solução correta é definir JETTY_HOMEassim /etc/default/jetty:

JETTY_HOME=/opt/jetty

Espero que isso ajude alguém.

PS: Este é o jetty 9 no Ubuntu 14.04 sobre Java 7.

Responder2

Não estou familiarizado com o serviço, mas em geral essas coisas funcionam por fork, ou seja, criando outro shell. Quando isso acontece, o novo shell não herda as variáveis ​​do shell definidas localmente,excetopara aqueles que são explicitamente escolhidos para isso. Isso é feito por meio do comando export, então você deve modificar seu comando para:

    export JETTY_HOME=/opt/jetty

e da mesma forma para todas as variáveis ​​​​que você deseja que seus subshells e filhas herdem.

Responder3

Acontece que o problema que tive foi que criei o arquivo "/opt/jetty" no Windows primeiro como um arquivo de texto e depois o enviei por FTP para o servidor. Isso não estava sendo reconhecido porque aparentemente era algum tipo de "formato DOS", então quando eu apaguei o arquivo e o refiz usando:

nano /etc/default/jetty

e colei as informações da variável dessa forma, de repente tudo funcionou!

informação relacionada