Ответ 1
Кажется, что Томкат фактически остановился. Я начал его, и все началось нормально. Спасибо всем.
Я попытался остановить tomcat. Это сообщение не получило:
Затем я снова попробовал и получил следующее:
Затем я попытался запустить tomcat в режиме отладки и получил следующее:
Я их удалил /opt/tomcat/work/catalina.pid и попытался перезапустить и получил следующее:
Кто-нибудь знает, как вернуть tomcat?
Кажется, что Томкат фактически остановился. Я начал его, и все началось нормально. Спасибо всем.
У меня появилось это сообщение об ошибке, начав второй сервер Tomcat на сервере Linux.
$CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted.
Когда я запускал второй Tomcat, я задал CATALINA_PID, но я ошибся в том, чтобы установить его в каталог (я предположил, что Tomcat напишет имя файла по умолчанию там, где находится pid).
Исправление было просто изменить мой CATALINA_PID, чтобы добавить имя файла в конец (я выбрал catalina.pid из приведенных выше примеров). Затем я пошел в каталог и сделал простой:
touch catalina.pid
создание пустого файла с правильным именем. Затем, когда я сделал мой shutdown.sh, я получил сообщение обратно:
PID file is empty and has been ignored.
Tomcat stopped.
У меня не было возможности убить Tomcat, поскольку JVM использовался, поэтому я был рад, что нашел это.
Убедитесь, что Tomcat в данный момент не запущен и файл PID удален. Им вы должны успешно запустить Tomcat.
Если вы начинаете новый, то:
setenv.sh
файл в <CATALINA_HOME>/bin
.CATALINA_PID=/tmp/tomcat.pid
(или другой каталог по вашему выбору), чтобы у вас был больший контроль над процессом Tomcat.Затем, чтобы запустить Tomcat, найдите catalina.sh
в <CATALINA_HOME>/bin
и выполните:
./catalina.sh start
и остановить его выполнение:
./catalina.sh stop 10 -force
От catalina.sh
script doc:
./catalina.sh
Usage: catalina.sh ( commands ... )
commands:
start Start Catalina in a separate window
stop Stop Catalina, waiting up to 5 seconds for the process to end
stop n Stop Catalina, waiting up to n seconds for the process to end
stop -force Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running
Примечание. Если вы хотите использовать флаг -force
, тогда установка CATALINA_PID
является обязательной.
Недавний я встречался несколько раз, когда переставал быть ненормальным. Хотя shutdown.sh предоставляет некоторую информацию, ситуации:
ps -ef| grep java
равен Null.ps -ef| grep java
не равен нулю.Мое мнение - просто убить процесс Catalina и удалить файл pid (в вашей ситуации /opt/tomcat/work/catalina.pid.)
Результат кажется не так серьезно влиять на других.
Вы можете перейти в местоположение $ {CATALINA_HOME}/журналы/ открытый катализатор. Здесь мы получим pid. затем прекратите процесс. kill -9 pid
Вы всегда можете попытаться убить процесс, если увидите такие проблемы. Вы можете получить идентификатор процесса либо из PS, либо из pid файла и убить процесс.
Попробуйте $ sudo ./catalina.sh stop
? Он работал в моем случае.
FIRST → rm catalina.engine
THEN → ./startup.sh
СЛЕДУЮЩЕЕ ВРЕМЯ, вы перезапустите → ./shutdown.sh -force
иногда, если тот же pid работает после перезагрузки, tomcat не запускается
мой файл pid был в apache-tomcat/temp/tomcat.pid
change file apache-tomcat/bin/catalina.sh about line 386
from "ps -p $PID >/dev/null 2>&1"
to "ps -fp $PID |grep catalina >/dev/null 2>&1"
выдержка из файла catalina.sh
if [ ! -z "$CATALINA_PID" ]; then
if [ -f "$CATALINA_PID" ]; then
if [ -s "$CATALINA_PID" ]; then
echo "Existing PID file found during start."
if [ -r "$CATALINA_PID" ]; then
PID='cat "$CATALINA_PID"'
ps -fp $PID |grep catalina >/dev/null 2>&1 #this line
if [ $? -eq 0 ] ; then
echo "Tomcat appears to still be running with PID $PID. Start aborted."
echo "If the following process is not a Tomcat process, remove the PID file and try again:"
ps -f -p $PID
exit 1
else
echo "Removing/clearing stale PID file."
rm -f "$CATALINA_PID" >/dev/null 2>&1
if [ $? != 0 ]; then
if [ -w "$CATALINA_PID" ]; then
cat /dev/null > "$CATALINA_PID"
else
echo "Unable to remove or clear stale PID file. Start aborted."
exit 1
fi
fi
fi
else
echo "Unable to read PID file. Start aborted."
В вашем случае отсутствует catalina.pid.
Этот файл находится в каталоге {your_jira_dir}/work/catalina.pid и содержит pid текущего экземпляра jira.
так
ps aux | grep jira
В моем случае tomcat.pid находится в /opt/tomcat/temp/. Пытался удалить его вручную. Все еще не работал. После проверки setnev.sh в /opt/tomcat/bin/обратите внимание, что есть строка кода для определения JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre
Закомментировал эту строку, перезапустите Tomcat. Оно работает! Так как я сделал ням-обновление и новую минорную версию обновления Java, начиная с 1.8.0.212 до 1.8.0.222. Извлеченные уроки: жесткого кода следует избегать.
sudo systemctl stop tomcat
сделал это для меня