Как автоматически перезапустить Tomcat7 при перезагрузке системы?

Я установил Tomcat 7 на Ubuntu 12.04 LTS, который работает на экземпляре Amzon EC2. Теперь я хочу, чтобы tomcat автоматически перезапускался при перезагрузке системы.

Я читал этот блог которые предлагают добавить приведенный ниже скрипт к /etc/init.d/tomcat7:

# Tomcat auto-start## description: Auto-starts tomcat# processname: tomcat# pidfile: /var/run/tomcat.pidcase $1 instart)sh /usr/share/tomcat7/bin/startup.sh;;stop) sh /usr/share/tomcat7/bin/shutdown.sh;;restart)sh /usr/share/tomcat7/bin/shutdown.shsh /usr/share/tomcat7/bin/startup.sh;;esac exit 0

и выполните следующие команды:

sudo chmod 755 /etc/init.d/tomcat7sudo ln -s /etc/init.d/tomcat7 /etc/rc1.d/K99tomcatsudo ln -s /etc/init.d/tomcat7 /etc/rc2.d/S99tomcatsudo /etc/init.d/tomcat7 restart

Мои Вопросы

  1. То tomcat7 в нем уже есть скрипт, куда мы должны вставить предложенный скрипт?
  2. Правильна ли предложенная процедура?

Создайте сценарий инициализации в /etc /init.d / tomcat7 с содержимым, как показано ниже (ваш сценарий тоже должен работать, но я думаю, что этот более соответствует стандартам).

Таким образом, Tomcat запустится только после настройки сетевых интерфейсов.

Содержимое скрипта инициализации:

#!/bin/bash### BEGIN INIT INFO# Provides:        tomcat7# Required-Start:  $network# Required-Stop:   $network# Default-Start:   2 3 4 5# Default-Stop:    0 1 6# Short-Description: Start/Stop Tomcat server### END INIT INFOPATH=/sbin:/bin:/usr/sbin:/usr/binstart() { sh /usr/share/tomcat7/bin/startup.sh}stop() { sh /usr/share/tomcat7/bin/shutdown.sh}case $1 in  start|stop) $1;;  restart) stop; start;;  *) echo "Run as $0 <start|stop|restart>"; exit 1;;esac

Измените его разрешения и автоматически добавьте правильные символические ссылки:

chmod 755 /etc/init.d/tomcat7update-rc.d tomcat7 defaults

И с этого момента он будет автоматически запускаться и выключаться при вводе соответствующих уровней выполнения. Вы также можете управлять им с помощью service tomcat7 <stop|start|restart>

Нельзя ли это добавить к /etc/rc.local

#!/bin/sh -e## rc.local## This script is executed at the end of each multiuser runlevel.# Make sure that the script will "exit 0" on success or any other# value on error.## In order to enable or disable this script just change the execution# bits.## By default this script does nothing.sleep 10/usr/share/tomcat7/bin/startup.sh

<предварительный класс=“lang-sh prettyprint-override”><код>#!/bin/bash

Автор : subz

Авторское право (c) 2k15

Заставьте убить процесс tomcat

TOMCAT_HOME=/media/subin/works/Applications/apache-tomcat-7.0.57
SHUTDOWN_WAIT=5

tomcat_pid() {
echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ печать $2 }"
}

start() {
pid=$(tomcat_pid)
если [ -n “$pid” ]
затем
повторите “Tomcat уже запущен (pid: $pid)”.
ещё
# Запускаем кота
echo “Запуск tomcat”
/bin/sh $TOMCAT_HOME/bin/startup.sh
fi

возвращает 0
}

стоп() {
pid=$(tomcat_pid)
если [ -n “$pid” ]
затем
повторите “Stoping Tomcat”.
/bin/sh $TOMCAT_HOME/bin/shutdown.sh

пусть kwait=$SHUTDOWN_WAIT
количество=0;
до тех пор, пока [ `ps -p $pid | grep -c $pid` = '0' ] || [ $ количество -gt $kwait ]
выполните

echo -n -e “\ n ожидание завершения процессов”;
сон 1
пусть count=$count+1;
сделано

if [ $count -gt $kwait ]; затем

echo -n -e “\nkilling процессы, которые не остановились после $SHUTDOWN_WAIT секунд”
убийство -9 $pid
echo " \nпроцесс убит вручную"
что еще

echo "Tomcat не запущен"

fi

возвращает 0
}
pid=$(tomcat_pid)

если [ -n “$pid” ]
затем
повторите “Tomcat запущен с pid: $pid”.
остановись
еще
echo “Tomcat не запущен”
запуск
fi
выход 0

Digital Ocean предоставляет очень удобное руководство по использованию Tomcat 8.x и Ubuntu 16.04 LTS и скриптов systemd.

https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-16-04

apache tomcat не отправляет с ним никаких скриптов инициализации.

  1. Установите предварительно упакованную версию, поддерживаемую Ubuntu, из диспетчера пакетов Ubuntu. Эта версия поставляется с собственным сценарием инициализации.

  2. Следуйте инструкциям в блоге, на который вы ссылались, которые предоставляют вам сценарий инициализации kickstart.

Я попробовал общепринятый ответ, который не сработал.

Что в итоге сработало, так это удаление службы и добавление службы обратно:

sudo update-rc.d -f tomcat7 removesudo update-rc.d tomcat7 defaults