La méthode xfnts_start utilisant la fonction scds_pmf_start() pour démarrer le service sous le gestionnaire de processus, xfnts_stop utilise la fonction scds_pmf_stop() pour l'arrêter.
Le premier appel d'xfnts_stop est destiné à la fonction 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_stop appelle la méthode svc_stop(), qui est définie dans le fichier 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 */
Notez les points suivants concernant l'appel de svc_stop() à la fonction scds_pmf_stop() :
L'argument SCDS_PMF_TYPE_SVC identifie le programme à arrêter en tant qu'application de service de données. Cette méthode peut également arrêter un détecteur de pannes ou certains autres types d'application.
L'argument SCDS_PMF_SINGLE_INSTANCE identifie le signal.
L'argument SIGTERM identifie le signal à utiliser pour arrêter l'instance de 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 de manuel scds_pmf_stop(3HA) pour obtenir plus de détails.
La valeur du délai imparti correspond à la propriété Délai_arrêt de la ressource.
Avant de quitter, la méthode xfnts_stop appelle scds_close() pour récupérer les ressources allouées par scds_initialize (). Les pages de manuel Fonction scds_initialize() et scds_close(3HA) contiennent plus de détails.