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);
}
|