RGM ruft die Start-Methode auf einem Cluster-Knoten auf, wenn die Ressourcengruppe, die den Datendienst enthält, auf diesem Knoten online gebracht wird bzw. wenn die Ressource aktiviert wird. Die xfnts_start-Methode aktiviert den xfs-Dämon auf diesem Knoten.
/* * Copyright (c) 1998-2004 Sun Microsystems, Inc. * Alle Rechte vorbehalten. * * xfnts_svc_start.c - Start-Methode für HA-XFS */ #pragma ident “@(#)xfnts_svc_start.c 1.13 01/01/18 SMI” #include <rgm/libdsdev.h> #include “xfnts.h” /* * Start-Methode für HA-XFS. Sie führt einige Kontrollprüfungen bei * den Ressourceneinstellungen aus und startet dann HA-XFS unter PMF mit * einem Aktionsskript. */ int main(int argc, char *argv[]) { scds_handle_t scds_handle; int rc; /* * Alle von RGM übergebenen Argumente verarbeiten und syslog * initialisieren */ if (scds_initialize(&scds_handle, argc, argv) != SCHA_ERR_NOERR) { scds_syslog(LOG_ERR, “Initialisierung des Handles fehlgeschlagen.”); return (1); } /* Konfiguration validieren und bei Fehler zurückgehen */ rc = svc_validate(scds_handle); if (rc != 0) { scds_syslog(LOG_ERR, “Konfigurationsvalidierung fehlgeschlagen.”); return (rc); } /* Datendienst starten und bei Fehlschlag Fehler zurückgeben */ rc = svc_start(scds_handle); if (rc != 0) { goto finished; } /* Warten, bis der Dienst vollständig gestartet ist. */ scds_syslog_debug(DBG_LEVEL_HIGH, “svc_wait wird aufgerufen, um zu überprüfen, ob der Dienst gestartet wurde.”); rc = svc_wait(scds_handle); scds_syslog_debug(DBG_LEVEL_HIGH, “Rückgabe von svc_wait”); if (rc == 0) { scds_syslog(LOG_INFO, “Dienst erfolgreich gestartet.”); } else { scds_syslog(LOG_ERR, “Starten des Dienstes fehlgeschlagen.”); } finished: /* Zugewiesene Umgebungsressourcen freigeben */ scds_close(&scds_handle); return (rc); } |