由於 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) 線上援助頁,以取得詳細資訊。