Назад | Перейти на главную страницу

CentOS, Tomcat 6 не удалось запустить - проблема с Java?

Linux - не моя сильная сторона, так что потерпите меня, если это покажется немного новичком. У меня арендован виртуальный 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.

    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

/ usr / sbin / tomcat6: ошибка: не удалось установить JAVACMD

Похоже, ваша система не может определить JAVACMD, что, в свою очередь, приводит к

/ usr / sbin / tomcat6: строка 60: -Duser.language = en: команда не найдена

поскольку JAVACMD имеет значение null, система пытается запустить -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 команда в местах, которые ищет кот.