CentOS, Tomcat 6 не удалось и не запустится - проблема с Java?
Линукс не моя сильная сторона, так что терпите меня, если это покажется новичком. У меня арендована виртуальная коробка Linux, есть CentOS (не знаю, какая версия) и Apache с Tomcat 6.
За последние 24 часа процесс Tomcat завершился неудачно и не запустится снова. Я не знаю почему, потому что он работал нормально, и я не вносил изменений в работу сервера (без обновлений или нового программного обеспечения)
Следующая информация доступна для меня, но, к сожалению, не указывает мне на решение:
Когда я пытаюсь запустить службу tomcat6 (запуск службы tomcat6), она говорит "ОК", но когда я проверяю ее состояние (состояние службы tomcat6), она говорит: "Файл PID существует, но процесс не запущен"
Файл catalina.out записывает что-то подобное каждый раз, когда я пытаюсь запустить его: /usr/sbin/tomcat6/: строка 30: -Duser.language=en: команда не найдена (иногда 30 будет 60).
Отредактировано для добавления: новые / соответствующие события в catalina.out:
/usr/sbin/tomcat6: line 60: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 30: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 30: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 30: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 60: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 60: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 30: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 30: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 60: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 60: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 30: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 30: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 60: -Duser.language=en: command not found
/usr/sbin/tomcat6: line 30: -Duser.language=en: command not found
В /var/log/tomcat6-initd.log я вижу следующую жалобу:
/usr/sbin/tomcat6: error: Failed to set JAVACMD.
Полный журнал этого файла:
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
/usr/sbin/tomcat6: error: Failed to set JAVACMD
Другие журналы не обновлялись с момента запуска
Я попытался перезагрузить компьютер, как через онлайн-консоль, так и в сеансе PuTTy, и я попытался удалить файл идентификатора процесса tomcat (увидел, что где-то у кого-то была похожая проблема), ни одна из них не работала, как вы Можно представить, что я также пытался запустить tomcat6 несколько раз, но каждый раз безуспешно.
Кто-нибудь видел что-нибудь подобное? Или, возможно, сможет помочь мне понять, что происходит?
Изменить: Я также добавил выдержку из /usr/sbin/tomcat6, надеюсь, что это форматирует правильно, я считаю, что это тот раздел файла, который отвечает, если вы используете службу tomcat6 start.
if [ "$1" = "start" ]; then
${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \
-classpath "$CLASSPATH" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
-Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \
-Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \
org.apache.catalina.startup.Bootstrap start \
>> ${CATALINA_BASE}/logs/catalina.out 2>&1 &
if [ ! -z "$CATALINA_PID" ]; then
echo $! > $CATALINA_PID
fi
1 ответ
/usr/sbin/tomcat6: ошибка: не удалось установить JAVACMD
Похоже, ваша система не может определить JAVACMD, что, в свою очередь, приводит к
/usr/sbin/tomcat6: строка 60: -Duser.language=en: команда не найдена
потому что JAVACMD является нулевым, система пытается запустить -Duser.language=en
,
JAVACMD определяется (или нет) в /usr/share/java-utils/java-functions
# Add all sorts of jvm layouts here
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
JAVACMD="$JAVA_HOME/jre/sh/java"
elif [ -x "$JAVA_HOME/bin/java" ]; then
JAVACMD="$JAVA_HOME/bin/java"
else
JAVACMD=`which java 2>/dev/null`
fi
if [ ! -x "$JAVACMD" ]; then
echo "$0: error: Failed to set JAVACMD"
return 1
fi
Так что кажется, что у вас нет действительного java
Команда в местах, которые ищет кот.