Sun Cluster: Guía del desarrollador de los servicios de datos del sistema operativo Solaris

Comprobación de la configuración

Para funcionar, el DNS necesita información del archivo named.conf, en el directorio de configuración. Por lo tanto, el método Start realiza algunas compobaciones de integridad para verificar que se puede acceder al directorio y el archivo antes de iniciar DNS.

La propiedad de extensión Confdir proporciona la ruta al directorio de configuración. La propiedad en sí se define en el archivo RTR. Sin embargo, el administrador del clúster especifica la ubicación actual al configurar el servicio de datos.

En el servicio de datos de ejemplo, el método Start recupera la ubicación del directorio de configuración mediante la función scha_resource_get().


Nota –

Dado que Confdir es una propiedad de extensión, scha_resource_get() devuelve tanto el tipo como el valor. El comando awk recupera sólo el valor y lo incluye en la variable de shell, CONFIG_DIR .


# find the value of Confdir set by the cluster administrator at the time of
# adding the resource.
config_info=`scha_resource_get -O Extension -R $RESOURCE_NAME \
-G $RESOURCEGROUP_NAME Confdir`

# scha_resource_get returns the "type" as well as the "value" for the
# extension properties. Get only the value of the extension property 
CONFIG_DIR=`echo $config_info | awk '{print $2}'`

El método Start utiliza el valor de CONFIG_DIRpara comprobar que se puede acceder al directorio. De lo contrario, Start registra un mensaje de error y sale con un estado de error. Consulte Estado de salida de Start.

# Check if $CONFIG_DIR is accessible.
if [ ! -d $CONFIG_DIR ]; then
   logger -p ${SYSLOG_FACILITY}.err \
         -t [$SYSLOG_TAG] \
         "${ARGV0} Directory $CONFIG_DIR is missing or not mounted"
   exit 1
fi

Antes de iniciar el daemon de la aplicación, este método realiza una comprobación final para verificar que el archivo named.conf esté presente. Si no lo está, Start registra un mensaje de error y sale con un estado de error.

# Change to the $CONFIG_DIR directory in case there are relative
# pathnames in the data files.
cd $CONFIG_DIR

# Check that the named.conf file is present in the $CONFIG_DIR directory
if [ ! -s named.conf ]; then
   logger -p ${SYSLOG_FACILITY}.err \
         -t [$SYSLOG_TAG] \
         "${ARGV0} File $CONFIG_DIR/named.conf is missing or empty"
   exit 1
fi