Сервер Ubuntu 14.04 tomcat7 не запускается при перезагрузке
У меня запущен tomcat7 на сервере для службы поддержки пользователей (SysAid). После перезагрузки служба tomcat7 не запускается.
В моем файле catalina.out, когда я выполняю grep для tomcat7, я получаю следующее:WARNING: Problem with directory [/usr/share/tomcat7/common/classes], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/common], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/server/classes], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/server], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/shared/classes], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/shared], exists: [false], isDirectory: [false], canRead: [false]
INFO: Deploying web application archive /var/lib/tomcat7/webapps/sysaid.war
WARNING: Problem with directory [/usr/share/tomcat7/common/classes], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/common], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/server/classes], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/server], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/shared/classes], exists: [false], isDirectory: [false], canRead: [false]
WARNING: Problem with directory [/usr/share/tomcat7/shared], exists: [false], isDirectory: [false], canRead: [false]
INFO: Deploying web application archive /var/lib/tomcat7/webapps/sysaid.war
Initializing log4j with: /var/lib/tomcat7/webapps/sysaid/./WEB-INF/log4j.properties
Initializing log4j with: /var/lib/tomcat7/webapps/sysaid/./WEB-INF/log4j.properties
INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT
В файлах журнала программы службы поддержки не упоминаются ошибки tomcat7.
Когда я запускаю скрипт запуска программы, я получаю следующее:Using CATALINA_BASE: /usr/share/tomcat7
Using CATALINA_HOME: /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
touch: cannot touch ‘/usr/share/tomcat7/logs/catalina.out’: No such file or directory
./catalina.sh: 385: ./catalina.sh: cannot create /usr/share/tomcat7/logs/catalina.out: Directory nonexistent
Я также проверил, чтобы убедиться, что он уже настроен на запуск при запуске через rc.d с помощью команды: sudo update-rc.d tomcat7 defaults
Вот что я получаю: System start/stop links for /etc/init.d/tomcat7 already exist.
Я удалил его и снова добавил, без изменений. Кто-нибудь может мне помочь? Заранее спасибо.
3 ответа
Проблема в ваших системных переменных.
Вы имеете CATALINA_HOME
определено, но нет CATALINA_BASE
поэтому по умолчанию он такой же как CATALINA_HOME
, но это не правильно.
CATALINA_BASE
: (Необязательно) Базовый каталог для разрешения динамических частей установки Catalina. Если нет, разрешается в тот же каталог, на который указывает CATALINA_HOME.
Обычно вы должны увидеть что-то вроде:
# /usr/share/tomcat7/bin/catalina.sh run
Using CATALINA_BASE: /var/lib/tomcat7
Using CATALINA_HOME: /usr/share/tomcat7
Using CATALINA_TMPDIR: /tmp
Using JRE_HOME: /usr/lib/jvm/java-7-openjdk-amd64
Using CLASSPATH: /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
Using CATALINA_PID: /var/run/tomcat7.pid
Если эти переменные отсутствуют, вы можете определить их вручную:
. /etc/default/tomcat7
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 CATALINA_HOME=/usr/share/tomcat7 CATALINA_BASE=/var/lib/tomcat7 CATALINA_PID=/var/run/tomcat7.pid CATALINA_TMPDIR=/tmp
/usr/share/tomcat7/bin/catalina.sh run
или настройте свой /etc/init.d/tomcat7
Скрипт запуска корректно, как обычно он должен иметь следующие переменные в конце:
# Directory where the Tomcat 6 binary distribution resides
CATALINA_HOME=/usr/share/$NAME
# Directory for per-instance configuration files and webapps
CATALINA_BASE=/var/lib/$NAME
Проверьте содержание catalina.sh
для более подробной информации, поскольку он описывает все предпосылки переменных среды.
В противном случае переустановите ваш Tomcat.
Проверьте это, чтобы видеть, связано ли это:
Сбой установки Tomcat7 через apt-get в Ubuntu 14.04
По существу, существует зависимость, которая может отсутствовать (исправлена с помощью sudo apt-get install libtomcat7-java
), но при условии, что вы уже сделали это, кажется, что пакет apt-get, как правило, FUBAR и требует послеустановочного массажа (который обычно я не рекомендую как apt-get reconfigure
или другие команды пакета могут привести к нежелательным последствиям).
Таким образом, установка.tgz (от Apache) вручную может быть наиболее стабильным путем наименьшего сопротивления.
Я также столкнулся с проблемой каталогов. Это было после того, как я удалил Tomcat 7 и попытался переустановить его. Когда я впервые удалил его, я не трогал пакет libtomcat7-java. Как только я столкнулся с тем фактом, что проблема может быть связана с пакетом, я сделал полное удаление и переустановку, и Tomcat подошел:
Удалите (убедитесь, что на этот раз включите пакет libtomcat7-java):
sudo apt-get remove --purge tomcat7 tomcat7-docs tomcat7-admin tomcat7-examples libtomcat7-java
Переустановка:
sudo apt-get install tomcat7 tomcat7-docs tomcat7-admin tomcat7-examples libtomcat7-java
Первое, что вы заметите, это то, что tomcat запустится сам по себе без проблем. Затем вы можете продолжить настраивать его правильно.