Como el método xfnts_monitor_start utiliza scds_pmf_start() para iniciar el daemon del supervisor bajo el control de PMF, xfnts_monitor_stop utiliza scds_pmf_stop() para detenerlo.
La primera llamada de xfnts_monitor_stop va dirigida a scds_initialize(), que realiza algunas funciones de mantenimiento necesarias. Para obtener más información, consulte Función scds_initialize() y la página de comando man scds_initialize(3HA).
El método xfnts_monitor_stop() llama al método mon_stop , que se define en el archivo xfnts.c, de la siguiente forma:
scds_syslog_debug(DBG_LEVEL_HIGH, "Calling scds_pmf_stop method"); err = scds_pmf_stop(scds_handle, SCDS_PMF_TYPE_MON, SCDS_PMF_SINGLE_INSTANCE, SIGKILL, scds_get_rs_monitor_stop_timeout(scds_handle)); if (err != SCHA_ERR_NOERR) { scds_syslog(LOG_ERR, "Failed to stop fault monitor."); return (1); } scds_syslog(LOG_INFO, "Stopped the fault monitor."); return (SCHA_ERR_NOERR); /* Successfully stopped monitor */ }
Tenga en cuenta los siguientes puntos acerca de la llamada de svc_mon_stop() a la función scds_pmf_stop():
El argumento SCDS_PMF_TYPE_MON identifica el programa que se va a detener como supervisor de fallos. Este método también puede detener un servicio de datos o cualquier otro tipo de aplicación.
El argumento SCDS_PMF_SINGLE_INSTANCE identifica ésta como un recurso de una sola instancia.
El argumento SIGKILL la señal que se utilizará para detener la instancia del recurso. Si esta señal no puede detener la instancia, scds_pmf_stop() devuelve un error de tiempo de espera agotado. Consulte la página de comando man scds_pmf_stop(3HA) para obtener más información.
El valor de tiempo de espera es el que se ha definido en la propiedad Monitor_stop_timeout del recurso.
Antes de salir, el método xfnts_monitor_stop llama a scds_close() para reclamar los recursos asignados por scds_initialize (). Para obtener más información, consulte Función scds_initialize() y la página de comando man scds_close(3HA)