Назад | Перейти на главную страницу

Spring Boot and stop by systemctl не работает

Мое приложение использует Spring Boot 2.3.1.RELEASE, это исполняемый файл jar, который использует встроенный Tomcat и прослушивает порт 10605. Я развернул его на CentOS Linux версии 7.6.1810 (Core).

Я сделал следующие шаги:

  1. SPEEDYF. Создание сервиса

[Ед. изм]

Описание = SPEEDYF

После = syslog.target

[Обслуживание]

Пользователь = root

ExecStart = / usr / local / bin / SPEEDYF / SPEEDYF.sh

SuccessExitStatus = 143

[Установить]

WantedBy = multi-user.target

  1. создание исполняемого файла SPEEDYF.sh

#! / Bin / bash

sudo java -jar -Dspring.profiles.active = prod /usr/local/bin/SPEEDYF/SPEEDYF-0.0.1-SNAPSHOT.jar

Впервые команда: systemctl enable SPEEDYF.service Запуск работает правильно: systemctl start SPEEDYF.service

Пока стоп работает некорректно: systemctl stop SPEEDYF.service. То есть, если я запустил команду systemctl status SPEEDYF.service, у меня будет следующий результат:

● SPEEDYF.service - SPEEDYF Загружен: загружен (/etc/systemd/system/SPEEDYF.service; включен; предустановка поставщика: отключен) Active: неактивен (мертв) .........

Но приложение все еще работает, то есть записывает журналы приложения, а затем выполняет проверку с помощью команды:

lsof -i -P -n | grep СЛУШАТЬ

порт TCP 10605 приводит к LISTEN.

Команды выполняются от имени пользователя root. Я не понимаю, что я могу сделать, чтобы стоп работал правильно.

заранее спасибо