Reiniciar JBoss 7 con un cron de Linux

En este artículo ya vimos como desplegar una aplicación desde Maven en JBoss, esto nos permitirá completar el ciclo de integración continua y probar completamente la aplicación. Podemos lanzar el despliegue de la aplicación desde Jenkins, cada vez que se suban cambios de código al repositorio.

Es probable que si se ejecutan repetidamente múltiples despliegues en JBoss, llegue un momento en el que éste no nos responda y fallen nuestros trabajos en Jenkins. En este artículo vamos a crear un cron job en Linux que reinicie JBoss 7 de manera periódica.

Reiniciar JBoss 7 con un cron de Linux

En primer lugar, creamos un script para reiniciar el JBoss, en este caso estamos utilizando
JBoss 7, así que vamos a crear un fichero “restartJBoss.sh” en el directorio “/home/miusuario/jboss-as-7.1.1.Final/bin“. Este es su contenido:

En primer lugar se para el servidor con el comando “jboss-cli.sh“, la ip 123… es un ejemplo. Hay que tener en cuenta, que el script “jboss-cli.sh” utiliza el comando java, por tanto tenemos que tener correctamente definida nuestra JDK en las variables de entorno.

A continuación se eliminan los logs, ya que siendo un entorno de integración continua, no me interesa almacenarlos. Finalmente iniciamos el servidor. Tenemos que hacer ejecutable el archivo:

Lo siguiente es comprobar si el cron está activado. Dependiendo de la distribución de Linux que estemos usando, esto se mira de diferente manera, se puede probar alguno de estos comandos:

El resultado esperado con alguno de ellos, es similar a este:

En el caso de que no esté funcionando, se puede probar a arrancarlo con el mismo comando que haya respondido pero cambiando status por start, por ejemplo, en mi caso:

Generar el cron con crontab

Ejecutamos lo siguiente:

Lo que nos abre el archivo con el editor vi. Pulsamos “i” para insertar. y escribimos lo siguiente:

Estamos escribiendo una expresión cron, seguida del comando a ejecutar. El primer parámetro son los minutos, en este caso indicamos el minuto cero, seguidamente se indica la hora del día en el que queremos ejecutar el cron, en el ejemplo, a las 7 de la mañana y a las 8 de la tarde. Los tres siguientes son, el día del mes, el mes (1..12) y el día de la semana (del 0 al 7, 0 = 7 = domingo). En este caso estamos poniendo asteriscos, que significa cualquier día.

Existe muchísima documentación sobre estas expresiones en internet, así que no voy a extenderme en esto.

Guardamos pulsando escape, y luego “:wq” para salir guardando. Será necesario reiniciar el cron para que se de cuenta de los cambios:

Podéis cambiar la hora del cron para comprobar que todo funciona correctamente.

Recordad que los comentarios son moderados y pueden tardar en mostrarse

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *