La méthode xfnts_monitor_start utilisant scds_pmf_start() pour démarrer le démon du détecteur sous le gestionnaire de processus, xfnts_monitor_stop utilise scds_pmf_stop()pour arrêter le démon du détecteur.
Le premier appel de xfnts_monitor_stop est destiné à scds_initialize(), qui effectue certaines tâches de gestion interne nécessaires. Les pages de manuel Fonction scds_initialize() et scds_initialize(3HA) contiennent plus de détails.
La méthode xfnts_monitor_stop() appelle la méthode mon_stop , qui est définie dans le fichier xfnts.c, de la manière suivante :
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 */ }
Notez les points suivants concernant l'appel de svc_mon_stop() destiné à la fonction scds_pmf_stop() :
L'argument SCDS_PMF_TYPE_MON identifie le programme à arrêter en tant que détecteur de pannes. Cette méthode peut également arrêter un service de données ou certains autres types d'application.
L'argument SCDS_PMF_SINGLE_INSTANCE l'identifie en tant que ressource à instance unique.
L'argument SIGKILL identifie le signal à utiliser pour arrêter l'instance de ressource. Si ce signal ne peut pas arrêter l'instance, scds_pmf_stop() renvoie une erreur de dépassement du délai imparti. Reportez-vous à la page de manuel scds_pmf_stop(3HA) pour plus de détails.
La valeur de délai d'attente est celle de la propriété Monitor_stop_timeout de la ressource.
Avant de quitter, la méthode xfnts_monitor_stop appelle scds_close() pour récupérer les ressources affectées par scds_initialize (). Les pages de manuel Fonction scds_initialize() et scds_close(3HA) contiennent plus de détails.