RGM invoca el método Start en un nodo del clúster cuando el grupo de recursos que contiene el recurso de servicio de datos se pone en línea en ese nodo o cuando se habilita el recurso. El método xfnts_start activa el daemon xfs en ese nodo.
/*
* Copyright (c) 1998-2004 by Sun Microsystems, Inc.
* All rights reserved.
*
* xfnts_svc_start.c - Método de inicio para HA-XFS
*/
#pragma ident “@(#)xfnts_svc_start.c 1.13 01/01/18 SMI”
#include <rgm/libdsdev.h>
#include “xfnts.h”
/*
* El método de inicio de HA-XFS. Realiza comprobaciones de estado
* en los valores de recurso e inicia el HA-XFS bajo PMF con una
* secuencia de acciones.
*/
int
main(int argc, char *argv[])
{
scds_handle_t scds_handle;
int rc;
/*
* Procesar todos los argumentos que ha pasado de RGM
* y realizar una inicialización para syslog
*/
if (scds_initialize(&scds_handle, argc, argv) != SCHA_ERR_NOERR)
{
scds_syslog(LOG_ERR, “No se ha podido inicializar el manejo.”);
return (1);
}
/* Validar la configuración; si hay un error, volver atrás */
rc = svc_validate(scds_handle);
if (rc != 0) {
scds_syslog(LOG_ERR,
“No se ha podido validar la configuración.”);
return (rc);
}
/* SIniciar el servicio de datos; si falla, volver con un error */
rc = svc_start(scds_handle);
if (rc != 0) {
goto finished;
}
/* Esperar que el servicio se inicie por completo */
scds_syslog_debug(DBG_LEVEL_HIGH,
“Llamar a svc_wait para comprobar que el servicio se haya iniciado.”);
rc = svc_wait(scds_handle);
scds_syslog_debug(DBG_LEVEL_HIGH,
“Devuelto desde svc_wait”);
if (rc == 0) {
scds_syslog(LOG_INFO, “El servicio se ha iniciado satisfactoriamente.”);
} else {
scds_syslog(LOG_ERR, “No se ha podido iniciar el servicio.”);
}
finished:
/* Liberar los recursos de entorno asignados*/
scds_close(&scds_handle);
return (rc);
}
|