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