Script de inicio de Linux para AEM

Pregunta

¿Cómo puedo crear un script de inicio de Linux para administrar un proceso de java de AEM?

Respuesta

A continuación se muestra un ejemplo de script de inicio de Linux (probado en Redhat Linux).

Para usar el script init:

1. Copie el script a un nuevo archivo /etc/init.d/aem6 en su servidor.

2. Edite el archivo y realice los siguientes cambios:

  • Establezca la variable AEM_ROOT en la ruta del directorio que contiene el archivo jar AEM.
  • Establezca la variable AEM_USER con el nombre del usuario del sistema que iniciará y detendrá AEM.
3. Ejecute el comando: chmod 755 /etc/init.d/aem6   4. Ejecute este comando para agregar la configuración al inicio y apagado de redhat: chkconfig --add aem6
Nota:

Antes de instalar AEM como servicio de Linux:

1. AEM ya debería haberse instalado o desempaquetado desde el archivo de instalación jar y su archivo license.properties ya debería estar en su lugar.  Consulte la documentación oficial para más detalles.

2. Verifique que los scripts de arranque y parada instalados con AEM funcionan como se espera. Los scripts se encuentran en /crx-quickstart/bin.

  • Asigne suficiente espacio a JVM configurando el parámetro -Xmx en la variable CQ_JVM_OPTS.
  • Asegúrese de que el binario java correcto es accesible a través de la ruta del contenedor de usuario del proceso AEM (variable AEM_USER).

Ejemplo de Script de inicio

#!/bin/bash
#
# /etc/rc.d/init.d/aem6
#
#
# # of the file to the end of the tags section must begin with a #
# character. After the tags section, there should be a blank line.
# This keeps normal comments in the rest of the file from being
# mistaken for tags, should they happen to fit the pattern.>
#
# chkconfig: 35 85 15
# description: This service manages the Adobe Experience Manager java process.
# processname: aem6
# pidfile: ${AEM_ROOT}/crx-quickstart/conf/cq.pid

# Source function library.
. /etc/rc.d/init.d/functions

SCRIPT_NAME=`basename $0`
AEM_ROOT=/opt/aem6
AEM_USER=aem

########
BIN=${AEM_ROOT}/crx-quickstart/bin
START=${BIN}/start
STOP=${BIN}/stop
STATUS="${BIN}/status"

case "$1" in
start)
echo -n "Starting AEM services: "
su - ${AEM_USER} ${START}
touch /var/lock/subsys/$SCRIPT_NAME
;;
stop)
echo -n "Shutting down AEM services: "
su - ${AEM_USER} ${STOP}
rm -f /var/lock/subsys/$SCRIPT_NAME
;;
status)
su - ${AEM_USER} ${STATUS}
;;
restart)
su - ${AEM_USER} ${STOP}
su - ${AEM_USER} ${START}
;;
reload)
;;
*)
echo "Usage: $SCRIPT_NAME {start|stop|status|reload}"
exit 1
;;
esac