Сервер 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 запустится сам по себе без проблем. Затем вы можете продолжить настраивать его правильно.

Другие вопросы по тегам