Не удалось запустить tomcat.service после установки Tomcat9 через YUM.

Вопрос или проблема

Я установил tomcat9 на мой сервер EC2, используя команды

sudo su
yum install tomcat9

Затем я попытался запустить команду:

/usr/sbin/tomcat9 start

Затем появилось сообщение об ошибке:

Failed to start tomcat.service: Unit tomcat.service not found.

Я что-то упустил?
Что это за файл tomcat.service? Где мне нужно его создать? Что он содержит?

sudo tee /etc/systemd/system/tomcat.service<<EOF
[Unit]
Description=Tomcat Server
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/jre-17
Environment="JAVA_OPTS=-Djava.awt.headless=true"
Environment=CATALINA_HOME=/usr/share/tomcat9
Environment=CATALINA_BASE=/usr/share/tomcat9
Environment=CATALINA_PID=/usr/share/tomcat9/temp/tomcat.pid
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M"
ExecStart=/usr/share/tomcat9/bin/catalina.sh start
ExecStop=/usr/share/tomcat9/bin/catalina.sh stop

[Install]
WantedBy=multi-user.target
EOF

Однако, при запуске я получаю ошибку

# /usr/sbin/tomcat9 start
Job for tomcat.service failed because the control process exited with error code.
See "systemctl status tomcat.service" and "journalctl -xeu tomcat.service" for details.
# systemctl status tomcat.service

× tomcat.service – Tomcat Server
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; preset: disabled)
Active: failed (Result: exit-code) since Tue 2023-05-16 16:08:18 JST; 2min 57s ago
Process: 281460 ExecStart=/usr/share/tomcat9/bin/catalina.sh start (code=exited, status=203/EXEC)
CPU: 621us

 5月 16 16:08:18 ip-172-31-25-139.us-west-2.compute.internal systemd[1]: Starting tomcat.service - Tomcat Server...
 5月 16 16:08:18 ip-172-31-25-139.us-west-2.compute.internal systemd[281460]: tomcat.service: Failed to locate executable

/usr/share/tomcat9/bin/catalina.sh: No such file or direc>
5月 16 16:08:18 ip-172-31-25-139.us-west-2.compute.internal systemd[281460]: tomcat.service: Failed at step EXEC spawning
/usr/share/tomcat9/bin/catalina.sh: No such file or dire>
5月 16 16:08:18 ip-172-31-25-139.us-west-2.compute.internal systemd[1]: tomcat.service: Control process exited, code=exited,
status=203/EXEC
5月 16 16:08:18 ip-172-31-25-139.us-west-2.compute.internal systemd[1]: tomcat.service: Failed with result ‘exit-code’.
5月 16 16:08:18 ip-172-31-25-139.us-west-2.compute.internal systemd[1]: Failed to start tomcat.service – Tomcat Server.

Я проверил каталог /usr/share/tomcat9/bin/ и не нашел файл catalina.sh.

Я пропустил какие-то шаги в своей установке?

У меня была такая же проблема недавно на Almalinux 9, я решил её, правильно перенаправив JAVA_HOME.

[root@srd system]# echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk

Файл tomcat.service

[Unit]

Description=Apache Tomcat Web Application Container

After=network.target

[Service]

Type=oneshot

RemainAfterExit=yes

User=tomcat

Group=tomcat

Environment=”JAVA_HOME=/usr/lib/jvm/java-17-openjdk”

Environment=”JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true”

Environment=”CATALINA_BASE=/opt/tomcat”

Environment=”CATALINA_HOME=/opt/tomcat”

Environment=”CATALINA_PID=/opt/tomcat/temp/tomcat.pid”

Environment=”CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC”

ExecStart=/opt/tomcat/bin/startup.sh

ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]

WantedBy=multi-user.target

Надеюсь, мой ответ будет полезен…………..-_-

Ответ или решение

Проблема, с которой вы столкнулись при установке и запуске Tomcat 9 на EC2 сервере через YUM, может быть связана с несколькими аспектами настройки и конфигурации. Давайте разберем шаги, которые могут помочь в устранении ошибки "Failed to start tomcat.service: Unit tomcat.service not found" и последующих проблем с исполняемыми файлами:

F – Факт (Fact):

После установки Tomcat 9 с помощью команды yum install tomcat9, вы попытались запустить службу с использованием /usr/sbin/tomcat9 start, однако столкнулись с ошибкой отсутствия юнита службы. При создании собственного файла tomcat.service и запуске, вы получили ошибку: исполняемый файл catalina.sh отсутствует в каталоге /usr/share/tomcat9/bin/.

O – Ожидание (Objective):

Цель – правильно настроить и запустить Apache Tomcat 9, обеспечив его функциональность в качестве службы под управлением системы systemd.

R – Решение (Resolution):

  1. Проверка установки Tomcat 9:

    • Убедитесь, что Tomcat 9 установлен корректно. Может понадобиться проверить, установлен ли пакет с бинарными файлами: yum install tomcat9-webapps tomcat9-admin-webapps.
    • Проверьте, где именно установились файлы конфигурации и исполняемые файлы. Обычно они располагаются в /usr/share/tomcat9, но могут быть в другом месте, например, в /opt/tomcat.
  2. Настройка службы systemd:

    • Убедитесь в корректности путей в созданном вами файле /etc/systemd/system/tomcat.service.
    • Если вы используете нестандартный каталог установки, например, /opt/tomcat, измените CATALINA_HOME и CATALINA_BASE в конфигурации.

    Пример настройки:

    [Unit]
    Description=Apache Tomcat Web Application Container
    After=network.target
    
    [Service]
    Type=forking
    User=tomcat
    Group=tomcat
    Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk"
    Environment="CATALINA_HOME=/opt/tomcat"
    Environment="CATALINA_BASE=/opt/tomcat"
    ExecStart=/opt/tomcat/bin/startup.sh
    ExecStop=/opt/tomcat/bin/shutdown.sh
    
    [Install]
    WantedBy=multi-user.target
  3. Обновление переменной JAVA_HOME:

    • Проверка корректности переменной окружения JAVA_HOME. Выполните:
      echo $JAVA_HOME

      Она должна указывать на действительное расположение вашей Java Runtime Environment, например, /usr/lib/jvm/java-17-openjdk.

  4. Перезагрузка systemd и запуск службы:

    • После внесения изменений не забудьте перезагрузить systemd:
      systemctl daemon-reload
    • Запуск службы:
      systemctl start tomcat.service
    • При успешном старте активируйте службу для автоматического запуска при перезагрузке системы:
      systemctl enable tomcat.service

E – Эмоция (Emotion):

Каждый шаг в настройке системы может быть важным, и успех запуска Apache Tomcat приносит уверенность в стабильности работы приложения.

S – Отзывы (Summary):

Настройка служб на Linux требует тщательного внимания к деталям конфигурации и пути установки. При правильной настройке systemd service и корректных путях для JAVA_HOME и CATALINA_HOME ваша установка Tomcat 9 должна заработать без ошибок.

T – Подводя итог (Takeaway):

Проблемы, связанные с отсутствием или неправильной конфигурацией служб, могут быть решены путем тщательной проверки путей, окружения и используемых системой ресурсов. Убедитесь, что все необходимые зависимости, такие как Java, правильно установлены и настроены, чтобы обеспечить безупречный запуск Apache Tomcat.

Оцените материал
Добавить комментарий

Капча загружается...