Мне нужно было настроить сервер Tomcat на базе Ubuntu, и я последовал этот хорошо написанный пост. Все отлично работает. Однако нарвался на странное поведение; Мне нужно было остановить сервер Tomcat, поэтому я использовал команду:
sudo /opt/tomcat/bin/shutdown.sh
Однако примерно через 10 секунд Tomcat автоматически перезапустился. Как это происходит? Выполняет следующую команду:
sudo systemctl enable tomcat
автоматически запускать службу Tomcat, если ее состояние периодически проверяется и оказывается остановленным?
Вы должны запустить, перезапустить, остановить tomcat с помощью команд systemd. Вы запустили службу Tomcatsudo systemctl start tomcat
, поэтому, если вы хотите остановить это, вам нужно пройти через systemd:sudo systemctl stop tomcat
. В файле объекта, согласно опубликованной вами ссылке, находятся следующие настройки: RestartSec=10
который инструктирует systemd перезапустить tomcat.service через 10 секунд в случае сбоя или выхода, и Restart=always
указывает systemd перезапустить tomcat.service всегда независимо от причины сбоя или выхода, кроме случаев, когда это было вызвано действием systemd. Есть хорошее объяснение Вот. Итак, вы пытаетесь выключить tomcat рядом с systemd, а systemd видит это как некоторую неточность в поведении tomcat.service и перезапускает его.
Эта команда:
sudo systemctl enable tomcat
сообщает systemd запускать службу tomcat.service при запуске системы и ничего больше.