RGM ruft die Start-Methode auf einem Cluster-Knoten auf, wenn die Ressourcengruppe, welche die Datendienstressource enthält, auf diesem Knoten online gebracht wird bzw. wenn die Ressource aktiviert wird. In der Beispielanwendung aktiviert die Start-Methode den in.named (DNS)-Dämon auf diesem Knoten.
#!/bin/ksh # # Start-Methode für HA-DNS. # # Diese Methode startet den Datendienst unter der Steuerung von PMF. # Vor dem Starten des in.named-Prozesses für DNS werden einige Kontrollprüfungen # ausgeführt. Die PMF-Markierung für den Datendienst ist $RESOURCE_NAME.named. # PMF versucht eine angegebene Anzahl von Malen (Retry_count), den Dienst zu starten. # Wenn die Anzahl der Versuche diesen Wert innerhalb eines bestimmten Zeitintervalls # (Retry_interval) überschreitet, berichtet PMF, dass der Start des Dienstes # fehlgeschlagen ist. Sowohl Retry_count als auch Retry_interval sind Eigenschaften # der in der RTR-Datei eingestellten Ressource. #pragma ident “@(#)dns_svc_start 1.1 00/05/24 SMI” ############################################################################### # Programmargumente analysieren. # function parse_args # [args ...] { typeset opt while getopts `R:G:T:' opt do case “$opt” in R) # Name der DNS-Ressource RESOURCE_NAME=$OPTARG ;; G) # Name der Ressourcengruppe, in der die Ressource # konfiguriert ist. RESOURCEGROUP_NAME=$OPTARG ;; T) # Name des Ressourcentyps. RESOURCETYPE_NAME=$OPTARG ;; *) logger -p ${SYSLOG_FACILITY}.err \ -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \ “FEHLER: Option $OPTARG unbekannt” exit 1 ;; esac done } ############################################################################### # MAIN # ############################################################################## export PATH=/bin:/usr/bin:/usr/cluster/bin:/usr/sbin:/usr/proc/bin:$PATH # syslog-Funktion abrufen, mit der Meldungen protokolliert werden. SYSLOG_FACILITY=`scha_cluster_get -O SYSLOG_FACILITY` # Argumente analysieren, die an diese Methode übergeben wurden parse_args “$@” PMF_TAG=$RESOURCE_NAME.named SYSLOG_TAG=$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME # Wert der Confdir-Eigenschaft der Ressource abrufen, um DNS zu starten. # Unter Verwendung des eingegebenen Ressourcennamens und der Ressourcengruppe # wird der Wert von Confdir gesucht. Dieser Wert wird vom Cluster-Verwalter # eingestellt, wenn er die Ressource hinzufügt. 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” der Erweiterungseigenschaften # zurück. Nur den Wert der Erweiterungseigenschaft abrufen. CONFIG_DIR=`echo $config_info | awk `{print $2}'` # Prüfen, ob der 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 nicht eingehängt” exit 1 fi # Zum Verzeichnis $CONFIG_DIR wechseln, falls die Datendateien relative # Pfadnamen enthalten. cd $CONFIG_DIR # Prüfen, ob die named.conf-Datei im Verzeichnis $CONFIG_DIR 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 # Wert für Retry_count aus der RTR-Datei abrufen. RETRY_CNT=`scha_resource_get -O Retry_Count -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAMÈ # Wert für Retry_interval aus der RTR-Datei abrufen. Dieser Wert in # Sekunden wird für die Weitergabe an pmfadm in Minuten konvertiert. # Beachten Sie, dass bei dieser Konvertierung gerundet wird, so # dass z. B. 50 Sekunden auf eine Minute gerundet werden. ((RETRY_INTRVAL = `scha_resource_get -O Retry_Interval -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAMÈ 60)) # in.named-Dämon unter Steuerung von PMF starten. Bis zu # $RETRY_COUNT Male in einem Zeitraum von $RETRY_INTERVAL abstürzen lassen # und neu starten; wenn er öfter abstürzt, versucht PMF keinen # Neustart mehr. Wenn bereits ein Prozess unter der Markierung # <$PMF_TAG> registriert ist, dann sendet PMF eine Warnmeldung, # dass der Prozess bereits läuft. echo “Wiederholungsintervall ist “$RETRY_INTRVAL pmfadm -c $PMF_TAG.named -n $RETRY_CNT -t $RETRY_INTRVAL \ /usr/sbin/in.named -c named.conf # Meldung protokollieren, die angibt, dass HA-DNS gestartet wurde. if [ $? -eq 0 ]; then logger -p ${SYSLOG_FACILITY}.info -t [$SYSLOG_TAG]\ “${ARGV0} HA-DNS wurde erfolgreich gestartet” fi exit 0 |