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 Команда в местах, которые ищет кот.

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