Quando crio um script de inicialização /etc/init.d
e faço uma export
variável, essa variável persiste e é "visível" para o processo iniciado?
Para ser específico, tenho o seguinte script para iniciar o tomcat no init.d com o qual começo manualmente start
:
#!/bin/bash
RETVAL=$?
export JRE_HOME=/home/jre
export PATH=/home/jre/bin/:${PATH}
export CATALINA_HOME=/home/apache-tomcat-7.0.25
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
/bin/su root $CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
/bin/su root $CATALINA_HOME/bin/shutdown.sh
fi
;;
restart)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
/bin/su root $CATALINA_HOME/bin/shutdown.sh
fi
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
/bin/su root $CATALINA_HOME/bin/startup.sh
fi
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
exit $RETVAL
Agora, no Tomcat, estou usando o pool de conexão e, quando uso um URL absoluto, tudo funciona bem. Ou seja:url="jdbc:h2:file:/home/apache-tomcat-7.0.25/webapps/myDB;SCHEMA=mySchema"
Mas se eu usar um URL relativo, ou seja, $CATALINA_HOME
no URL, url="jdbc:h2:file:$CATALINA_HOME\webapps\myDB;SCHEMA=mySchema"
isso NÃO funcionará e eu recebo a exceção JNDI.
Observe que no meu script eu exportei $CATALINA_HOME
para ser/home/apache-tomcat-7.0.25
Parece que o $CATALINA_HOME
não está definido para a instância iniciada do Tomcat.
Poderia ser este o caso? Alguém tem uma idéia de por que o URL com a variável de ambiente não funciona?