[Alfresco Tip] Crear un servicio de alfresco en linux

Buenas.

¿No os ha ocurrido a veces que te encuentras una instalación en el que Alfresco no arranca al iniciar el sistema operativo? Hay una opción sencilla para hacerlo y es creando un demonio o servicio dentro del sistema operativo que dispongáis. En mi caso os voy a explicar cómo hacerlo para Ubuntu 14.04 LTS

Los pasos que vamos a realizar son:

  • Creamos el script que se encargará de levantar nuestro alfresco
  • Configuramos las variables que nos interesan de acuerdo con nuestra instalación
  • Creamos y damos permisos a los archivos necesarios
  • Refrescamos los servicios a nivel de sistema operativo
  • ¡A probar!

¡Manos a la obra!

Antes de nada comprobaremos que no esté creado en el sistema, para ello listaremos los que existen actualmente con el siguiente comando:

ls -l /etc/init.d/

Os devolverá algo similar a estas entradas:

-rw-r–r– 1 root root 4290 mar 12  2013 apache2
-rwxr-xr-x 1 root root 6173 abr 13  2012 bluetooth
-rwxr-xr-x 1 root root 4077 may  2  2010 ssh
….

Fijaros que no haya ninguno relativo a alfresco o tomcat. Una vez comprobado que realmente no disponemos de ningún servicio, procedemos a crear uno. Para ello realizamos los siguientes pasos:

    1. $ cd /etc/init.d/
    2. $ sudo nano alfresco
      Se nos abrirá el editor de texto. Deberemos pegar el siguiente contenido:

      #!/bin/sh
      #
      # description: Alfresco init.d startup
      # author: Cristina Martin
      # date: 18.12.15
      #
      ### BEGIN INIT INFO
      # Provides:          alfresco
      # Start:             start
      # Stop:              stop
      # Restart:           restart
      # Status:            status   
      # Description:       Alfresco start|stop|restart|status
      ### END INIT INFO
      
      RETVAL=0
      ALF_USER=alfresco
      ALF_LOGS=/var/log/alfresco
      ALF_HOME=/opt/alfresco-4.2.f
      ALF_CURRENT_USER=`whoami`
      #echo starttt
      #echo $ALF_CURRENT_USER
      start () {
          cd $ALF_LOGS
          if [ $ALF_CURRENT_USER = $ALF_USER ] ; then
             $ALF_HOME/alfresco.sh start $2
          else
             su $ALF_USER -c "$ALF_HOME/alfresco.sh start $2"
          fi
          #$ALF_HOME/alfresco.sh start $2
          #/opt/alfresco/alfresco.sh start "$2"
          RETVAL=$?
          if [ -d "/var/lock/subsys" ] && [ `id -u` = 0 ] && [ $RETVAL -eq 0 ] ; then
              touch /var/lock/subsys/alfresco
          fi
      }
      
      stop () {
          if [ $ALF_CURRENT_USER = $ALF_USER ] ; then
             $ALF_HOME/alfresco.sh stop $2
          else
             su $ALF_USER -c "$ALF_HOME/alfresco.sh stop $2"
          fi
          RETVAL=$?
      }
      
      
      case "$1" in
          start)
              start "$@"
              ;;
          stop)
              stop "$@"
              ;;
          restart)
              stop "$@"
              start "$@"
              ;;
          *)
          if [ $ALF_CURRENT_USER = $ALF_USER ] ; then
             $ALF_HOME/alfresco.sh $@
          else
             su $ALF_USER -c "$ALF_HOME/alfresco.sh $@"
          fi
          RETVAL=$?
      esac
      exit $RETVAL
      
      
    3. A tener en cuenta las siguientes líneas (cambiadlas por los valores que estéis usando):
      ALF_USER=alfresco
      ALF_LOGS=/var/log/alfresco
      ALF_HOME=/opt/alfresco-5.0.a

      ALF_USER: Es el usuario que se encargará de arrancar el alfresco
      ALF_LOGS: Será la ruta donde se guardaran los logs que genere nuestro servicio
      ALF_HOME: La ruta donde está instalado nuestro Alfresco

    4. Realizamos lo siguiente:
      $ control + x
      $ Y
      $ Tecla “intro”Con esto salvaremos nuestro nuevo fichero
    5. Asignamos permisos a nuestro nuevo archivo:
      sudo chown alfresco /etc/init.d/alfresco
      sudo chmod 755 /etc/init.d/alfresco
    6. Necesitamos crear la carpeta donde salvaremos los logs que se generen con este servicio y dar permisos a nuestro usuario:
      sudo mkdir /var/log/alfresco
      sudo chown alfresco /var/log/alfresco
    7. Lo siguiente es decirle a nuestro Sistema que hemos introducido este nuevo servicio y que queremos cargarlo cuando se inicie el sistema, para ello ejecutamos la siguiente orden:
      sudo update-rc.d alfresco defaults
    8. Reiniciar el sistema para probar que funciona y se inicia Alfresco correctamente con el comando reboot

Y con esto tendremos configurado nuestra instalación de Alfresco como servicio, de forma que si el servidor sufre alguna caída, Alfresco pueda levantarse automáticamente.

Espero que os haya servido este tip ;-)

Un saludo.

2 pensamientos en “[Alfresco Tip] Crear un servicio de alfresco en linux

Deja un comentario