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