У меня есть tomcat8, установленный в моем AMI Amazon Linux, я изменил заголовок сценария инициализации tomcat8, поэтому chkconfig может установить tomcat8 для автоматического запуска при загрузке. Измененный заголовок:
#!/bin/bash
#
# tomcat This shell script takes care of starting and stopping Tomcat
#
# chkconfig: 345 80 20
# description: Release implementation for Servlet 3.0 and JSP 2.2
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Description: Release implementation for Servlet 3.0 and JSP 2.2
# Short-Description: start and stop tomcat
### END INIT INFO
#
# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
# - heavily rewritten by Deepak Bhole and Jason Corley
#
Как видите, я настроил его для работы на уровнях выполнения 3, 4 и 5.
Затем я побежал:
sudo chkconfig --add tomcat8
И к моему отчаянию после запуска --list
вариант, tomcat8 - это off
для всех уровней запуска:
$ sudo chkconfig --add tomcat8
$ chkconfig --list tomcat8
tomcat8 0:off 1:off 2:off 3:off 4:off 5:off 6:off
В чем дело? Что мне не хватает? Почему chkconfig не превращает tomcat8 on
на 3, 4 и 5 уровнях?
В --add
переключатель только добавляет новая услуга для управления chkconfig
. Если сервис уже присутствует и имеет символическую ссылку в каждом /etc/rc[0-6].d
каталог, который ничего не сделает ...
Чтобы модифицировать уровни запуска, на которых должен быть запущен tomcat8, вам не нужно было редактировать сценарий инициализации, а просто запустить:
chkconfig --level 345 tomcat8 on
или, в качестве альтернативы, после того, как вы изменили файл инициализации, используйте reset
переключатель:
chkconfig --level 0123456 reset
или сначала удалите существующие символические ссылки из /etc/rc[0-6].d
а затем добавьте их снова:
chkconfig --del tomcat8
chkconfig --add tomcat8