jasper en linux

Hola

Como hago para que

java -jar $toba_dir/php/3ros/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET:8081

se ejecute al arranque de un debian 6?

Gracias

Emilio

A ver si te sirve:

  1. Simpre es bueno definir el start y el stop

    /etc/init.d/<nombre_demonio> start (para iniciar el demonio)
    /etc/init.d/<nombre_demonio> stop (para detenerlo)

#!/bin/sh
case “$1” in
start)
# código para iniciar el demonio/programa
;;
stop)
# código para parar el demonio/programa
;;
restart)
# código para reiniciar el demonio/programa
;;
esac

  1. Verificar que tenga permisos de ejecucion

chmod 755 /etc/init.d/myScript

  1. Agregar links simbolicos para que sean ejecutados cuendo el sistema inicie

update-rc.d myscript defaults

Saludos, Emilio

Reproduci tu requerimiento en mi servidor, te dejo el paso a paso:

  1. crear el archivo en /etc/init.d/servidorJasper.sh

  2. Poner la siguente linea dentro del archivo:
    nohup sudo java -jar /usr/local/proyectos/guarani/3.8.0/lib/toba/php/3ros/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET:8081 &
    (nohup para que corre en background y no dependa de la consola)

  3. Cambiarle los permisos: sudo chmod 755 servidorJasper.sh

  4. editar el archivo /etc/rc.local

Antes del exit poner la siguiente linea:
sh /etc/init.d/servidorJasper.sh

  1. Fin

Para probar si esta corriendo el servicio ejecutar: ps -ax | grep SERVLET

Tendrias qeu ver algo asi:
1177 ? S 0:00 sudo java -jar /usr/local/proyectos/guarani/3.8.0/lib/toba/php/3ros/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET:8081
1181 ? Sl 0:04 java -jar /usr/local/proyectos/guarani/3.8.0/lib/toba/php/3ros/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET:8081

Podes ver si el pueto esta a la escucha: netstat -pltn
Y tendrias que ver algo asi:
tcp6 0 0 :::8081 :::* LISTEN

Saludos

Hola

Muchas gracias por las opciones.

Esta segunda la entiendo.
Ni idea de como pararlo al servicio, segun me dijistes en la primera. Vi como estaba trabajando el BIServer que tenía una bat para arrancar y otra para parar pero no pude hacerlo que pare.

Si se te ocurre como para tener algo para resetear el ésto sin tener que resetear la maquina, sería bueno.

Emilio

Te paso lo que me pedis, pero tenes que usar la primera opcion que te pase (Borrar lo otro):
(Lo hice en mi server y funciono…)

  1. crear el archivo servidorJasper.sh
  2. Cargarle el siguiente codigo…

#! /bin/sh

Script ejemplo para arranque de servicios en /etc/init.d/

case “$1” in
start)
echo "Iniciando servicio… "

Comando a ejecutar para arrancar el servicio

nohup sudo java -jar /usr/local/proyectos/guarani/3.8.0/lib/toba/php/3ros/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET:8081 &
;;
stop)
echo “Deteniendo servicio…”

Comando a ejecutar para detener el servicio

for i in ps -ef | grep SERVLET | awk '{print $2}'; do sudo kill -9 $i; done
;;
*)
echo “Modo de empleo: /etc/init.d/jasperServicio {start|stop}”
exit 1
;;
esac
exit 0

  1. Darle permisos de ejecucion chmod 755 jasperServicio.sh

  2. agregar links simbolicos para que sean ejecutados cuendo el sistema inicie o cuando se apague:

update-rc.d jasperServicio.sh defaults

  1. Con esto te inicia solo el archivo y con stop lo paras…

La linea: ps -ef | grep SERVLET | awk ‘{print $2}’ lo que hace es buscar la palabra clave SERVLET y de la salida de del ps toma la segunda columna del comando ps (proba con $1 y veras al usuario, por ejemplo)… Ojo que si tenes otra cosa con SERVLET tambien lo mata, puede ser que necesites ser mas explicito en el grep

Podes probar el funcionamiento con lo que te pase anteriormente:

Para probar si esta corriendo el servicio ejecutar: ps -ax | grep SERVLET

Tendrias qeu ver algo asi:
1177 ? S 0:00 sudo java -jar /usr/local/proyectos/guarani/3.8.0/lib/toba/php/3ros/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET:8081
1181 ? Sl 0:04 java -jar /usr/local/proyectos/guarani/3.8.0/lib/toba/php/3ros/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET:8081

Podes ver si el pueto esta a la escucha: netstat -pltn
Y tendrias que ver algo asi:
tcp6 0 0 :::8081 :::* LISTEN

Seria buena que agregen esto como parte de la documentacion de Guarani3, ya que es un proceso que debe quedar corriendo en todo momento.

Saludos

Concuerdo. Estoy con la versión 3.11 y tampoco esta documentado esto en el tutorial. Debería estar en el punto 11
documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.11.0/instalacion_actualizacion_gestion

En mi caso estoy usando Debian 8 y entiendo que los servicios se crean de otra forma porque usa Systemd. Por lo pronto añadí la siguiente línea en /etc/rc.local

 
/usr/bin/java -jar /usr/local/proyectos/guarani/lib/toba/php/3ros/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET:8081 

Hola

Cree un archivo severjasper.sh con la sentencia que mencionas y puse

cp /root/serverjasper.sh /etc/init.d/serverjasper.sh
chmod 700 /etc/init.d/serverjasper.sh
cd /etc/init.d
insserv serverjasper.sh

arranca como servicio al arranque del sistema.

Emilio

Buenas tardes, vamos a tener en cuenta los comentarios para ver si lo agregamos en la documentación del proyecto.

Saludos y Gracias