Aplicación Java Como Servicio en Ubuntu


Para publicar tu aplicación java como servicio esta debe estar compilada en un jar ejecutable.

Supongamos que nuestra aplicación es MiApp.jar

Para publicar nuestra aplicación como servicio sigue los siguientes pasos:

1.- Crear el archivo de servicio:
         -$ sudo gedit /etc/init.d/miapp
         - agregar en el editor el siguiente código y guardar.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          MiApp
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Start/stop MiApp server
### END INIT INFO


case $1 in
    start)
        echo "Starting MiApp ..."
        if [ ! -f /opt/MiApp/pid ]; then
            nohup java -jar /opt/MiApp/MiApp.jar /opt/MiApp 2>> /dev/null >> /dev/null &
            echo $! > /opt/MiApp/pid
            echo "MiApp started ..."
        else
            echo "MiApp is already running ..."
        fi
    ;;
    stop)
        if [ -f /opt/MiApp/pid ]; then
            PID=$(cat /opt/MiApp/pid);
            echo "Stopping MiApp ..."
            kill $PID;
            echo "MiApp stopped ..."
            rm /opt/MiApp/pid
        else
            echo "MiApp is not running ..."
        fi
    ;;
    restart)
        if [ -f /opt/MiApp/pid ]; then
            PID=$(cat /opt/MiApp/pid);
            echo "Stopping MiApp ...";
            kill $PID;
            echo "MiApp stopped ...";
            rm /opt/MiApp/pid

            echo "Starting MiApp ..."
            nohup java -jar /opt/MiApp/MiApp.jar /opt/MiApp 2>> /dev/null >> /dev/null &
            echo $! > /opt/MiApp/pid
            echo "MiApp started ..."
        else
            echo "MiApp is not running ..."
        fi
    ;;
esac
2.- Otorgar permisos de ejecución:
         -$ sudo chmod 755 /etc/init.d/miapp
3.- Crear link simbolicos:
        -$ sudo ln -s /etc/init.d/miapp  /etc/rc1.d/K99miapp
        -$ sudo ln -s /etc/init.d/miapp /etc/rc2.d/S99miapp

Listo ahora nuestra app está lista para correr como servicio. Para validar su funcionamiento basta con ejecutar los siguientes comandos

        -$ service miapp start
        -$ service miapp restart
        -$ service miapp stop

Post original: running-java-program-as-a-daemon-in-ubuntu-linux

Comentarios

Entradas populares