J'ai installé Tomcat 7 sur Ubuntu 12.04 LTS qui s'exécute sur une instance Amzon EC2. Maintenant, je souhaite que Tomcat redémarre automatiquement au redémarrage du système.
J'ai lu ce blog qui suggère d'ajouter le script ci-dessous à /etc/init.d/Tomcat7
:
# Tomcat auto-start
#
# description: Auto-starts Tomcat
# processname: Tomcat
# pidfile: /var/run/Tomcat.pid
case $1 in
start)
sh /usr/share/Tomcat7/bin/startup.sh
;;
stop)
sh /usr/share/Tomcat7/bin/shutdown.sh
;;
restart)
sh /usr/share/Tomcat7/bin/shutdown.sh
sh /usr/share/Tomcat7/bin/startup.sh
;;
esac
exit 0
et lancez les commandes suivantes:
Sudo chmod 755 /etc/init.d/Tomcat7
Sudo ln -s /etc/init.d/Tomcat7 /etc/rc1.d/K99Tomcat
Sudo ln -s /etc/init.d/Tomcat7 /etc/rc2.d/S99Tomcat
Sudo /etc/init.d/Tomcat7 restart
Mes questions
Créez le script init dans /etc/init.d/Tomcat7 avec le contenu décrit ci-dessous (votre script devrait fonctionner aussi, mais je pense que celui-ci adhère plus étroitement aux normes).
De cette façon, Tomcat ne démarrera qu’après la configuration des interfaces réseau.
Contenu du script d'initiation:
#!/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 INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
start() {
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
Change ses permissions et ajoute automatiquement les bons liens symboliques:
chmod 755 /etc/init.d/Tomcat7
update-rc.d Tomcat7 defaults
Et à partir de maintenant, il sera automatiquement démarré et arrêté lorsque vous entrerez dans les niveaux d'exécution appropriés. Vous pouvez également le contrôler avec service Tomcat7 <stop|start|restart>
Est-ce que cela peut être ajouté au /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
#!/bin/bash
#
# Author : subz
# Copyright (c) 2k15
#
# Make kill the Tomcat process
#
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 '{ print $2 }'`
}
start() {
pid=$(Tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is already running (pid: $pid)"
else
# Start Tomcat
echo "Starting Tomcat"
/bin/sh $Tomcat_HOME/bin/startup.sh
fi
return 0
}
stop() {
pid=$(Tomcat_pid)
if [ -n "$pid" ]
then
echo "Stoping Tomcat"
/bin/sh $Tomcat_HOME/bin/shutdown.sh
let kwait=$SHUTDOWN_WAIT
count=0;
until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
do
echo -n -e "\nwaiting for processes to exit";
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds"
kill -9 $pid
echo " \nprocess killed manually"
fi
else
echo "Tomcat is not running"
fi
return 0
}
pid=$(Tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is running with pid: $pid"
stop
else
echo "Tomcat is not running"
start
fi
exit 0
Digital Ocean fournit un guide très pratique pour utiliser les scripts Tomcat 8.x et Ubuntu 16.04 LTS et systemd.
https://www.digitalocean.com/community/tutorials/how-to-install-Apache-Tomcat-8-on-ubuntu-16-04
Apache Tomcat n'envoie aucun script d'initialisation.
Installez la version préemballée gérée par Ubuntu à partir du gestionnaire de paquets Ubuntu. Cette version fournit son propre script init.
Suivez les étapes du blog auquel vous avez fait référence, qui vous fournissent un script kickstart init.