Documentos de Académico
Documentos de Profesional
Documentos de Cultura
bsica
remos una librera llamada Java Service Wrapper. Dicha librera nos ofrece una serie de
scripts y binarios preparados para diferentes sistemas operativos y arquitecturas, que nos
permitirn correr nuestros programas como un servicio; adems ofrece diferentes versiones:
Profesional, Estndar y Comunity. En este caso usaremos la versin Comunity que es libre
y gratuita.
La mejor manera de aprender a usar dicha librera es con un pequeo laboratorio, as que he
preparado uno en donde explico la integracin ms simple que existe con Java Service
Wrapper (existen 4 mtodos; unos ms avanzados que otros). La integracin sencilla que he
escogido nos permitir ejecutar como servicio una aplicacin que ya est creada
(probablemente ya empaquetada en un .jar) y a la que no podemos o es difcil hacerle
modificaciones. Esta es la manera ms sencilla de hacerlo, sin embargo tiene una
desventaja: al detener el servicio se enva directamente un System.exit() a la JVM por lo
que la aplicacin no se cerrar limpiamente.
Como puedes ver se trata de una aplicacin de consola comn y corriente. La aplicacin
consta bsicamente de:
UNIX/Linux
cp $RUTA_JSW/bin/wrapper $RUTA_APP/bin/
cp $RUTA_JSW/src/bin/sh.script.in $RUTA_APP/bin/
cp $RUTA_JSW/lib/* $RUTA_APP/bin/
Windows
UNIX/Linux
Ahora debes renombrar el script sh.script.in con el nombre de la aplicacin con la que
haremos la integracin y darle privilegios de ejecucin. En este cas se llama simplemente
servicio:
cd $RUTA_APP/bin
mv sh.script.in servicio
chmod a+x servicio
Windows
Ahora debes renombrar los archivos .bat para que concuerden con el nombre de la
aplicacin con la que haremos la integracin. En este cas se llama simplemente servicio
(lo puedes hacer usando el explorador si no te gusta usar la consola, pero a mi me dara
pena):
cd $RUTA_APP/bin
move App.bat.in servicio.bat
move InstallApp-NT.bat.in InstallServicio-NT.bat
move UninstallApp-NT.bat.in UninstallServicio-NT.bat
02wrapper.java.command=java
11wrapper.java.additional.auto_bits=TRUE
14wrapper.app.parameter.2=/tmp/log
#********************************************************************
15
# Wrapper General Properties
16
#********************************************************************
17
# Allow for the use of non-contiguous numbered properties
18
wrapper.ignore_sequence_gaps=TRUE
19
# Title to use when running as a <span class="IL_AD"
id="IL_AD8">console</span>
20
wrapper.console.title=servicio
21
#********************************************************************
22
# Wrapper Windows NT/2000/XP Service Properties
23
#********************************************************************
24
# <span class="IL_AD" id="IL_AD11">Name of</span> the service
25wrapper.name=jgossip
27wrapper.displayname=Servicio
29wrapper.description=Monitor de memoria
# Mode in which the service is installed. AUTO_START or DEMAND_START
30
wrapper.ntservice.starttype=AUTO_START
31
# Allow the service to interact with the <span class="IL_AD"
32id="IL_AD10">desktop</span>.
33wrapper.ntservice.<span class="IL_AD"
id="IL_AD5">interactive</span>=false
34
4. Probar/Instalar el servicio
Ahora veremos cmo podemos probar la aplicacin para asegurarnos que ha quedado bien
configurada antes de proceder con la instalacin.
UNIX/Linux
./servicio console
Lo detienes presionando Ctrl+C. Ahora, si queremos probarlo como demonio basta con
ejecutar los comandos tpicos de un demonio en UNIX/Linux:
$ ./servicio start
Starting un servicio que escribe cosas
$ ./servicio stop
Stopping un servicio que escribe cosas
Stopped un servicio que escribe cosas.
Para instalarlo basta con crear un enlace simblico del script en el directorio /etc/init.d y
aadirlo al listado de servicios a iniciar; por ejemplo:
Windows
http://casidiablo.net/tag/demonio/