Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Überprüfen der Konfiguration

DNS benötigt für die Ausführung Informationen aus der named.conf-Datei im Konfigurationsverzeichnis. Deshalb führt die Start-Methode einige Tests durch, die prüfen, ob auf das Verzeichnis und die Datei zugegriffen werden kann, bevor der Versuch unternommen wird, den DNS zu starten.

Die Confdir-Erweiterungseigenschaft stellt den Pfad zum Konfigurationsverzeichnis bereit. Die Eigenschaft selbst ist in der RTR-Datei definiert. Der Cluster-Administrator legt den tatsächlichen Ort jedoch bei der Konfiguration des Datendienstes fest.

Beim Beispieldatendienst ruft die Start-Methode den Ort des Konfigurationsverzeichnisses mithilfe der Funktion scha_resource_get() ab.


Hinweis –

Da Confdir eine Erweiterungseigenschaft ist, gibt scha_resource_get() sowohl den Typ als auch den Wert zurück. Mit dem Befehl awk wird lediglich der Wert abgerufen und in eine Shell-Variable, CONFIG_DIR , eingefügt.


# 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}'`

Die Start-Methode verwendet den Wert von CONFIG_DIR, um zu prüfen, ob auf das Verzeichnis zugegriffen werden kann. Ist dies nicht der Fall, protokolliert die Start-Methode eine Fehlermeldung und wird mit einem Fehlerstatus beendet. Weitere Informationen finden Sie unter Start-Beendigungsstatus.

# 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

Vor dem Starten des Anwendungsdämons überprüft diese Methode abschließend, ob die named.conf-Datei vorhanden ist. Ist die Datei nicht vorhanden, protokolliert die Start-Methode eine Fehlermeldung und wird mit einem Fehlerstatus beendet.

# 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