Foros del Web » Administración de Sistemas » Unix / Linux »

Parar ejecución de clase java desde Shell Script

Estas en el tema de Parar ejecución de clase java desde Shell Script en el foro de Unix / Linux en Foros del Web. Hola a tod@s, tengo el siguiente problema. Tenemos un script muy sencillo que ejecuta una clase java. El problema que se nos plantea es que ...
  #1 (permalink)  
Antiguo 18/06/2014, 02:02
 
Fecha de Ingreso: junio-2014
Mensajes: 1
Antigüedad: 10 años, 6 meses
Puntos: 0
Parar ejecución de clase java desde Shell Script

Hola a tod@s, tengo el siguiente problema.

Tenemos un script muy sencillo que ejecuta una clase java.

El problema que se nos plantea es que de vez en cuando, la clase java deja de ejecutarse por timeout, y no devuelve ninguna respuesta.

Necesitamos controlar desde el shell script ese timeout, y para ello, hemos pensado ejecutar un sleep desde en backgrond durante 60 segundos y que si el sleep se termina mantar el proceso de la clase java.

Esta es la solución que hemos planteado:

$PROCESO = [LLAMADA A LA CLASE JAVA.]

$ sleep 60 & #ejecutamos el sleep en backgraound
PROCESO #llamamos a la clase java
$ kill %PROCESO
PROCESO+ Terminated sleep 60 #supuestamente matamos PROCESO cuando hayan pasado los 60 segundos


La cuestión es que no nos funciona. ¿Alguien se ha enfrentado a algo similar? Un saludo y gracias.
  #2 (permalink)  
Antiguo 18/06/2014, 12:24
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Parar ejecución de clase java desde Shell Script

Tu problema es que no es sleep quien debe ir en segundo plano, sino la llamada al proceso java.

Por aquí te explican varias soluciones: http://stackoverflow.com/questions/6...ecessary-delay

1. Ejecutar en una subshell en segundo plano, y matar el proceso luego de cierto tiempo:
( /path/to/slow command with options ) & sleep 5 ; kill $!

2. Una función que hace lo que necesitas, en bash4: http://www.bashcookbook.com/bashinfo...ripts/timeout3

3. la utilidad timeout, del paquete coreutils.

Etiquetas: clase, java, parar, shell
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:21.