OpenDS como Servicio Redhat Linux, error “service opends does not support chkconfig”

Uno de los puntos que viene poco explicado en OpenDS (Directory Server o LDAP Server) es como instalar la aplicación como servicio, en este artículo lo vamos a explicar.

Este articulo supone que se bajó  OpenDS (download)

http://opends.java.net/public/downloads_index.html

Y se instaló siguiendo el tutorial:

http://java.net/projects/opends/pages/2_2_InstallationGuide

El cual obviamente no explica como subirlo como servicio Linux. Vamos a suponer que OpenDS quedo instalado en “/opt/OpenDS-2.2.1/bin/” para el resto de este tutorial.

Se supone que con este comando se genera el script del servicio…

./create-rc-script -f /etc/init.d/opends

Pero el “script” generado tiene algunos problemas, por ejemplo si lo queremos registrar con “chkconfig”:

chkconfig –add opends

Da el siguiente error:

service opends does not support chkconfig

Esto debido a que no viene indicado la descripción del servicio, que normalmente se define como comentario:

# chkconfig: 2345 20 80
# description: OpenDS Directory and LDAP Server
# processname: opends

Y otro problema es que el script no maneja la opción “status” que sirve para que el sistema operativo cuando trate de levantar el servicio sepa si este realmente está “arriba”.

Aquí está el script completo y corregido, este lo deben copiar en “/etc/init.d/opends” (pisando el que ya generamos).

#!/bin/sh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the “License”). You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at
# https://OpenDS.dev.java.net/OpenDS.LICENSE.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at
# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
# add the following below this CDDL HEADER, with the fields enclosed
# by brackets “[]” replaced with your own identifying information:
# Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
# chkconfig: 2345 20 80
# description: OpenDS Diarectory and LDAP Server
# processname: opends

# Set the path to the OpenDS instance to manage
INSTALL_ROOT=”/opt/OpenDS-2.2.1″
export INSTALL_ROOT

# Specify the path to the Java installation to use
OPENDS_JAVA_HOME=”/usr/java/jdk1.6.0_31″
export OPENDS_JAVA_HOME

cd ${INSTALL_ROOT}

# Determine what action should be performed on the server
case “${1}” in
start)
“${INSTALL_ROOT}/bin/start-ds” –quiet
exit ${?}
;;
stop)
“${INSTALL_ROOT}/bin/stop-ds” –quiet
exit ${?}
;;
restart)
“${INSTALL_ROOT}/bin/stop-ds” –restart –quiet
exit ${?}
;;
status)
“${INSTALL_ROOT}/bin/status” -D “cn=Directory Manager” -w primeras -X -s
exit ${?}
;;
*)
echo “Usage: $0 { start | stop | restart | status}”
exit 1
;;
esac
exit 0

Ahora si podemos registrar el servicio sin problema

chkconfig –add opends

Reiniciamos el sistema Linux, y luego lo probamos con la siguiente comando OpenDS (situándonos en el path “/opt/OpenDS-2.2.1/bin/”)

./status -D “cn=Directory Manager” -w password -X -s

Donde “password” debe corresponder a la clave del administrador del “Directory Server”, que se indicó cuando se instaló OpenDS. Este comando debe retornar

“Server Run Status: Started….”

También podemos probarlo usando la consola de OpenDS

./control-panel

Advertisements