La méthode de démarrage_xfnts utilisant scds_pmf_start() pour démarrer le service sous le gestionnaire de processus, arrêt_xfnts emploie scds_pmf_stop() pour arrêter celui-ci.
le premier appel d'arrêt_xfnts est destiné à la fonction scds_initialize() exécutant des fonctions de gestion interne nécessaires (pour plus de détails, reportez-vous à la rubrique Fonction scds_initialize() et à la page scds_initialize(3HA) du manuel).
La méthode d'arrêt_xfnts appelle la méthode arrêt_svc(), définie dans xfnts.c de la manière suivante :
scds_syslog(LOG_ERR, "Issuing a stop request."); err = scds_pmf_stop(scds_handle, SCDS_PMF_TYPE_SVC, SCDS_PMF_SINGLE_INSTANCE, SIGTERM, scds_get_rs_stop_timeout(scds_handle)); if (err != SCHA_ERR_NOERR) { scds_syslog(LOG_ERR, "Failed to stop HA-XFS."); return (1); } scds_syslog(LOG_INFO, "Successfully stopped HA-XFS."); return (SCHA_ERR_NOERR); /* Successfully stopped */
Remarquez les points suivants concernant l'appel d'arrêt_svc() destiné à la fonction scds_pmf_stop() :
Le paramètre SCDS_PMF_TYPE_SVC identifie le programme à arrêter comme une application de service de données (cette méthode peut également arrêter un détecteur de pannes ou un autre type d'application).
Le paramètre SCDS_PMF_SINGLE_INSTANCE identifie le signal.
Le paramètre SIGTERM identifie le signal à utiliser pour arrêter l'instance de la ressource. Si le signal ne peut pas arrêter l'instance, scds_pmf_stop() envoie SIGKILL pour le faire et, en cas d'échec, renvoie une erreur de dépassement du délai imparti. Reportez-vous à la page scds_pmf_stop(3HA) du manuel pour plus de détails.
La valeur du délai imparti correspond à la propriété Délai_arrêt de la ressource.
avant sa fermeture, la méthode d'arrêt_xfnts appelle scds_close() afin de récupérer les ressources réparties par scds_initialize (). Reportez-vous à la rubrique Fonction scds_initialize() et à la page scds_close (3HA) du manuel pour plus de détails.