Con estos breves pasos, configuraremos un script que ejecute las acciones de start, stop y restart del servicio y se ejecute al iniciar el sistema operativo:
Según sea lo que necesiten, creen y prueben el shell script que desean que se ejecute al inicio del sistema operativo.
Acá dejo un ejemplo de un script para iniciar tomcat6. Mi instalación default para este ejemplo fue /var/lib/tomcat6 y con el Java 6 Runtime Enviroment en /var/lib/java/jdk1.6.0_05/. Este script permitirá tanto como iniciar, detener y reiniciar el servicio de tomcat6 y también permitirá ejecutarlo cuando se inicie el servidor.
#!/bin/bash
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $remote_fs $syslog
# Required-Stop: $remore_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Script para iniciar tomcat al inicio del servidor
# Description: framirez.ve@gmail.com - 25-NOV-2013
### END INIT INFO
export JRE_HOME=/var/lib/java/jdk1.6.0_05/jre/
case $1 in
start)
sh /var/lib/tomcat6/bin/startup.sh start
;;
stop)
sh /var/lib/tomcat6/bin/shutdown.sh stop
;;
restart)
sh /opt/tomcat/bin/catalina.sh stop
sh /var/lib/tomcat6/bin/shutdown.sh start
;;
esac
exit 0
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $remote_fs $syslog
# Required-Stop: $remore_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Script para iniciar tomcat al inicio del servidor
# Description: framirez.ve@gmail.com - 25-NOV-2013
### END INIT INFO
export JRE_HOME=/var/lib/java/jdk1.6.0_05/jre/
case $1 in
start)
sh /var/lib/tomcat6/bin/startup.sh start
;;
stop)
sh /var/lib/tomcat6/bin/shutdown.sh stop
;;
restart)
sh /opt/tomcat/bin/catalina.sh stop
sh /var/lib/tomcat6/bin/shutdown.sh start
;;
esac
exit 0
2. Copiar el script a la ruta /etc/init.d/. Dar privilegios de ejecución al script (por ejem: chmod +x /etc/init.d/tomcat).
Explicación del script:
Si se fijan el el encabezado del script, abajo de la 1ra linea #!/bin/bash observarán algunas lineas:
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $remote_fs $syslog
# Required-Stop: $remore_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Script para iniciar tomcat al inicio del servidor
# Description: framirez.ve@gmail.com - 25-NOV-2013
### END INIT INFO
# Provides: tomcat
# Required-Start: $remote_fs $syslog
# Required-Stop: $remore_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Script para iniciar tomcat al inicio del servidor
# Description: framirez.ve@gmail.com - 25-NOV-2013
### END INIT INFO
Esto se refiere a la funcionalidad de Linux Standard Base (LSB) o Linux Standard a través de sus LBS Tags:
"El objetivo de la LSB es desarrollar y promover un conjunto de estándares que aumentarán la compatibilidad entre las distribuciones de Linux y permitirán que los programas de aplicación puedan ser ejecutados en cualquier sistema que se adhiera a ella. Además, la LSB ayudará a coordinar esfuerzos tendentes a reclutar productores y proveedores de programas que creen productos originales para Linux o adaptaciones de productos existentes."
En resumen: Si no quieres utilizar los "LSB Tags" en tu script, deberás desinstalar el paquete insserv (apr-get remove insserv) y el script quedaría como el que sigue:
#!/bin/bash
export JRE_HOME=/var/lib/java/jdk1.6.0_05/jre/
case $1 in
start)
sh /var/lib/tomcat6/bin/startup.sh start
;;
stop)
sh /var/lib/tomcat6/bin/shutdown.sh stop
;;
restart)
sh /opt/tomcat/bin/catalina.sh stop
sh /var/lib/tomcat6/bin/shutdown.sh start
;;
esac
exit 0
export JRE_HOME=/var/lib/java/jdk1.6.0_05/jre/
case $1 in
start)
sh /var/lib/tomcat6/bin/startup.sh start
;;
stop)
sh /var/lib/tomcat6/bin/shutdown.sh stop
;;
restart)
sh /opt/tomcat/bin/catalina.sh stop
sh /var/lib/tomcat6/bin/shutdown.sh start
;;
esac
exit 0
NOTA IMPORTANTE: Si desinstalas la funcionalidad de LSB Tags es muy probable que los scripts que ya tengas creados y funcionando de esta manera, en tu Sistema Operativo, dejen de funcionar.
3. Ejecutar el comando:
update-rc.d tomcat defaults 80
Este comando creará los enlaces correspondientes automatizando el proceso de creación y borrado de enlaces a los scripts de inicio, con en fin de iniciar/parar servicios.
La sentencia "defaults" indica que el script arrancará y se detendrá en los niveles por defecto.
La sentencia "80" indica la prioridad de inicio y parada del script.
4. Para finalizar, validamos la creación del script por medio de enlaces simbólicos (por ejemplo, ls -l /etc/rc2.d/):
ls -l /etc/rc2.d/
total 4
-rw-r--r-- 1 root root 677 mar 26 2012 README
lrwxrwxrwx 1 root root 31 oct 21 08:52 S01xe-linux-distribution -> ../init.d/xe-linux-distribution
lrwxrwxrwx 1 root root 17 oct 18 17:52 S14portmap -> ../init.d/portmap
lrwxrwxrwx 1 root root 20 oct 18 17:52 S15nfs-common -> ../init.d/nfs-common
lrwxrwxrwx 1 root root 17 oct 18 17:52 S17rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root 14 oct 24 09:14 S17sudo -> ../init.d/sudo
lrwxrwxrwx 1 root root 17 oct 24 09:30 S18apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 15 oct 24 09:30 S19acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root 13 oct 24 09:30 S19atd -> ../init.d/atd
lrwxrwxrwx 1 root root 14 oct 24 09:30 S19cron -> ../init.d/cron
lrwxrwxrwx 1 root root 15 oct 24 09:30 S19mysql -> ../init.d/mysql
lrwxrwxrwx 1 root root 13 oct 24 09:30 S19ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 16 oct 25 11:26 S19tomcat -> ../init.d/tomcat
total 4
-rw-r--r-- 1 root root 677 mar 26 2012 README
lrwxrwxrwx 1 root root 31 oct 21 08:52 S01xe-linux-distribution -> ../init.d/xe-linux-distribution
lrwxrwxrwx 1 root root 17 oct 18 17:52 S14portmap -> ../init.d/portmap
lrwxrwxrwx 1 root root 20 oct 18 17:52 S15nfs-common -> ../init.d/nfs-common
lrwxrwxrwx 1 root root 17 oct 18 17:52 S17rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root 14 oct 24 09:14 S17sudo -> ../init.d/sudo
lrwxrwxrwx 1 root root 17 oct 24 09:30 S18apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 15 oct 24 09:30 S19acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root 13 oct 24 09:30 S19atd -> ../init.d/atd
lrwxrwxrwx 1 root root 14 oct 24 09:30 S19cron -> ../init.d/cron
lrwxrwxrwx 1 root root 15 oct 24 09:30 S19mysql -> ../init.d/mysql
lrwxrwxrwx 1 root root 13 oct 24 09:30 S19ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 16 oct 25 11:26 S19tomcat -> ../init.d/tomcat
5. Para probar, reiniciamos el servidor y validamos que el servicio se haya iniciado en forma correcta (por ejemplo ps aux | grep tomcat):
ps aux | grep tomcat
root 1039 0.0 2.0 677068 41940 ? Sl Oct25 3:11 /var/lib/java/jdk1.6.0_05/jre//bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/var/lib/tomcat6/endorsed -classpath /var/lib/tomcat6/bin/bootstrap.jar -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/var/lib/tomcat6 -Djava.io.tmpdir=/var/lib/tomcat6/temp org.apache.catalina.startup.Bootstrap start start
root 9797 0.0 0.0 3320 804 pts/0 S+ 11:12 0:00 grep tomcat
root 1039 0.0 2.0 677068 41940 ? Sl Oct25 3:11 /var/lib/java/jdk1.6.0_05/jre//bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/var/lib/tomcat6/endorsed -classpath /var/lib/tomcat6/bin/bootstrap.jar -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/var/lib/tomcat6 -Djava.io.tmpdir=/var/lib/tomcat6/temp org.apache.catalina.startup.Bootstrap start start
root 9797 0.0 0.0 3320 804 pts/0 S+ 11:12 0:00 grep tomcat
No hay comentarios:
Publicar un comentario