DNS benötigt für die Ausführung Informationen aus der named.conf-Datei im Konfigurationsverzeichnis. Daher führt die Start-Methode einige Gesundheits-Checks aus, um zu überprüfen, ob auf das Verzeichnis und die Datei zugegriffen werden kann, bevor DNS gestartet wird.
Die Confdir-Erweiterungseigenschaft stellt den Pfad zum Konfigurationsverzeichnis bereit. Die Eigenschaft selbst ist in der RTR-Datei definiert. Den Speicherort gibt jedoch der Cluster-Verwalter beim Konfigurieren des Datendienstes an.
Im Beispieldatendienst ruft die Start-Methode den Speicherort des Konfigurationsverzeichnisses mithilfe der Funktion scha_resource_get() ab.
Da Confdir eine Erweiterungseigenschaft ist, gibt scha_resource_get() sowohl den Typ als auch den Wert zurück. Der awk-Befehl ruft lediglich den Wert ab und legt ihn in einer Shell-Variablen ab, CONFIG_DIR.
# Den Wert von Confdir suchen, den der Cluster-Verwalter beim Hinzufügen # der Ressource eingestellt hat. config_info=`scha_resource_get -O Extension -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAME Confdir` # scha_resource_get gibt sowohl den "Typ" als auch den "Wert" für die # Erweiterungseigenschaften zurück. Nur den Wert der Erweiterungseigenschaft abrufen. CONFIG_DIR=`echo $config_info | awk '{print $2}'` |
Die Start-Methode verwendet dann den Wert von CONFIG_DIR, um zu überprüfen, ob das auf das Verzeichnis zugegriffen werden kann. Wenn kein Zugriff möglich ist, protokolliert Start eine Fehlermeldung und wird mit Fehlerstatus beendet. Weitere Informationen finden Sie unter Start-Beendigungsstatus.
# Prüfen, ob Zugriff auf $CONFIG_DIR möglich ist. if [ ! -d $CONFIG_DIR ]; then logger -p ${SYSLOG_FACILITY}.err \ -t [$SYSLOG_TAG] \ "${ARGV0} Verzeichnis $CONFIG_DIR fehlt oder ist nicht eingehängt" exit 1 fi |
Vor dem Starten des Anwendungsdämons führt diese Methode eine abschließende Prüfung durch, um zu überprüfen, ob die named.conf-Datei vorhanden ist. Wenn sie nicht vorhanden ist, protokolliert Start eine Fehlermeldung und wird im Fehlerstatus beendet.
# Wechsel zum $CONFIG_DIR-Verzeichnis, falls die # Datendateien relative Pfadnamen enthalten. cd $CONFIG_DIR # Prüfen, ob die named.conf-Datei im $CONFIG_DIR-Verzeichnis vorhanden ist if [ ! -s named.conf ]; then logger -p ${SYSLOG_FACILITY}.err \ -t [$SYSLOG_TAG] \ "${ARGV0} Datei $CONFIG_DIR/named.conf fehlt oder ist leer" exit 1 fi |