Вопрос или проблема
Я установил Tomcat из стандартных пакетов Ubuntu 20.04, но не могу понять, как его запустить. dpkg -L tomcat9 не показывает скрипт /etc/init.d. Есть только /usr/libexec/tomcat9/tomcat-start.sh и когда я вызываю его, я
получаю /usr/libexec/tomcat9/tomcat-start.sh: 25: exec: /bin/catalina.sh: не найден
Как я могу запустить tomcat9, установленный из Ubuntu?
Если я устанавливаю tomcat9
на Ubuntu 23.04 (“Lunar Lobster”), пакет предоставляет /lib/systemd/system/tomcat9.service
:
root@ubuntu:~# dpkg -L tomcat9 | grep systemd
/lib/systemd
/lib/systemd/system
/lib/systemd/system/tomcat9.service
Запуск службы работает как ожидалось:
systemctl start tomcat9.service
Ubuntu приняла systemd еще в 2015 году, и устаревшие скрипты /etc/init.d
с тех пор были признаны устаревшими.
Ответ или решение
Tomcat9 на Ubuntu 20.04 можно запустить несколькими способами, но важно учитывать, что система управления службами Ubuntu изменилась, и теперь вместо устаревших скриптов /etc/init.d
используется systemd
. Поэтому, описанная вами ситуация с отсутствием соответствующего скрипта — это нормальное явление для данной версии Ubuntu. Давайте рассмотрим, как правильно запустить Tomcat9 на Ubuntu, основываясь на предоставленной информации.
Установка Tomcat9 и его конфигурация
После установки Tomcat9 из стандартных пакетов Ubuntu 20.04, вы можете обнаружить, что исполняемые файлы и службы расположены в директории /usr/libexec/tomcat9/
. Однако, для запуска Tomcat вам следует использовать системную службу systemd
, если она доступна. Обратите внимание, что на первой версии Ubuntu 20.04 такая служба может не устанавливаться автоматически.
Запуск Tomcat9 с использованием systemd
-
Проверка наличия службы Tomcat9:
Убедитесь, что файл службы существует:ls /lib/systemd/system/tomcat9.service
Если файл не найден, возможно, вам потребуется установить Tomcat9 через другую процедуру, либо вручную создать файл службы.
-
Создание службы для Tomcat9:
Если служба не существует, вы можете создать ее самостоятельно. В качестве примера, создайте файл/etc/systemd/system/tomcat9.service
и добавьте следующий контент:[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=simple User=your_username Group=your_group Environment=CATALINA_HOME=/usr/share/tomcat9 Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 ExecStart=/usr/share/tomcat9/bin/startup.sh ExecStop=/usr/share/tomcat9/bin/shutdown.sh [Install] WantedBy=multi-user.target
Обратите внимание на путь к Java (JAVA_HOME), он может варьироваться в зависимости от установленной версии.
-
Перезагрузка systemd:
После создания файла службы выполните команду:sudo systemctl daemon-reload
-
Запуск Tomcat9:
Теперь вы можете запустить Tomcat с помощью:sudo systemctl start tomcat9
-
Проверка статуса:
Чтобы проверить, работает ли Tomcat9, выполните:sudo systemctl status tomcat9
Запуск Tomcat9 на Ubuntu 23.04
На более поздней версии Ubuntu, такой как 23.04, пакет Tomcat уже включает предустановленный systemd
-скрипт, что упрощает процессы установки и запуска. Поэтому, если у вас установлена этой версии, вам достаточно выполнить команду:
sudo systemctl start tomcat9.service
Заключение
При установке Tomcat9 на Ubuntu 20.04 наиболее корректным способом запуска будет использование systemd
, что обеспечивает больше безопасности и лучшую интеграцию с системой. Если вы столкнетесь с проблемами, такими как ошибка "not found" при запуске catalina.sh
, убедитесь, что вы указали верные пути к исполняемым файлами и переменным окружения. Ознакомление с документацией Tomcat и systemd
поможет вам избежать многих распространенных ошибок.