Le problème n'est pas aussi facile qu'il n'y paraît dans le titre. J'utilise un paquet Tomcat 7 par défaut sur Unbutu 14.04 LTS. Quand je n'ai pas "setenv.sh" dans/usr/share/tomcat7/bin, il commence à dire "OK" quand je fais:setenv.sh provoquant l'échec de Tomcat7
$ sudo service tomcat7 start
* Starting Tomcat servlet engine tomcat7 [OK]
Lorsque j'utilise le setenv.sh décrit ci-dessous, il AUSSI COMMENCE sans erreur dans /var/lib/logs/catalina.out mais le service est détecté comme "ayant échoué" lorsque /etc/init.d/tomcat7 appelle "start-stop-daemon --test" et conclut qu'il n'est pas en cours d'exécution:
$ sudo service tomcat7 start
* Starting Tomcat servlet engine tomcat7 [fail]
Que puis-je faire à ce sujet?
/usr/share/tomcat7/bin/setenv.sh:
#! /bin/sh
export JAVA_HOME="/home/linc/install/jdk1.7.0_75"
(...)
# Check for application specific parameters at startup
if [ -r "$CATALINA_BASE/bin/appenv.sh" ]; then
. "$CATALINA_BASE/bin/appenv.sh"
fi
Il y a un autre problème, lié peut-être: quand je vérifie le processus courant après le démarrage détecté comme "échoué" (ps -ef | grep java
), je peux voir toutes les options -D ajoutées par setenv.sh, mais je ne peux pas voir l'option -D ajoutée par "appenv.sh" (bien que setenv.sh et appenv .sh ont exactement les mêmes droits 755).
Remarque: si je lance sudo /usr/share/tomcat7/bin/startup.sh
, setenv.sh ne pose aucun problème et appenv.sh est utilisé.
EDIT: J'ai peut-être trouvé la cause mais pas l'explication: quand j'enlève la déclaration de JAVA_HOME, il utilise le jvm par défaut et le démarrage du service est détecté comme "OK", mais quand je spécifie la valeur par défaut jvm, ça échoue à nouveau!
export JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre"
ou:
export JAVA_HOME="/usr/lib/jvm/java-8-oracle"
Qu'est-ce qui se passe ici?