я получил /etc/init.d/tomcat1
сценарий, который запускается при загрузке на уровнях RC 3 и 5. Этот сценарий вызывает /usr/local/tomcat1/bin/startup.sh
на старте.
Хотя я могу вручную выполнить /usr/local/tomcat1/bin/startup.sh
с консоли при загрузке я получаю следующее в /var/log/boot.msg
:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
После этого я добавил в /etc/init.d/boot.local
:
export JAVA_HOME="/usr/local/java"
Но я все еще получаю то же сообщение о JAVA_HOME
отсутствует.
В итоге я изменил /usr/local/tomcat1/bin/catalina.sh
и жесткое кодирование следующего:
JAVA_HOME="/usr/local/java"
Tomcat теперь запускается при загрузке, но я знаю, что жесткое кодирование этого в сценарии catalina.sh не подходит.
Итак, вопрос, как я могу установить / экспортировать JAVA_HOME
чтобы его можно было читать из скриптов, запущенных при загрузке?
Спасибо
Внесите свои изменения в /etc/profile.local
поэтому они загружаются для всех пользователей. В этом случае, положив JAVA_HOME=/usr/local/java
в этом файле должно быть достаточно.
/etc/boot.local
выполняется после всех других сценариев для данного уровня запуска, поэтому внесенные вами изменения не будут видны другим сценариям инициализации. Чтобы ваш пример, приведенный выше, работал, вам нужно будет ввести следующее в boot.local
:
export JAVA_HOME=/usr/local/java
/usr/local/tomcat1/bin/startup.sh
т.е. установите переменную среды, затем запустите сценарий запуска.