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:### 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
-$ 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
Publicar un comentario