由於 xfnts_start 方法使用 scds_pmf_start() 來啟動 PMF 下的服務,因此 xfnts_stop 將使用 scds_pmf_stop() 來停止服務。
xfnts_stop 中的第一個呼叫是呼叫 scds_initialize(),其可執行某些必需的事務性工作函數。scds_initialize() 函數和 scds_initialize(3HA) 線上手冊包含更多資訊。
xfnts_stop 方法呼叫 svc_stop() 方法 (在 xfnts.c 檔案中定義),如下所示︰
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 */
請注意以下關於 svc_stop() 中對 scds_pmf_stop() 函數呼叫的幾點內容︰
SCDS_PMF_TYPE_SVC 引數將要停止的程式識別為資料服務應用程式。此方法也可停止故障監視器或某些其他應用程式類型。
SCDS_PMF_SINGLE_INSTANCE 引數識別訊號。
SIGTERM 引數識別要用來停止資源實例的訊號。如果此訊號無法停止實例,scds_pmf_stop() 將發送 SIGKILL 來停止該實例,如果失敗,它將傳回逾時錯誤。請參閱 scds_pmf_stop(3HA) 線上手冊,以取得詳細資訊。
逾時值為資源之 Stop_timeout 特性的值。
結束之前,xfnts_stop 方法將呼叫 scds_close(),以收回由 scds_initialize() 配置的資源。scds_initialize() 函數 和 scds_close(3HA) 線上手冊包含更多資訊。