如果 "規則關鍵字和值" 以及 "Probe 關鍵字和值" 中規則與探測關鍵字說明不夠清楚、無法解決您的需求,您可以建立 custom_probes 檔來定義屬於自己的自訂規則或探測關鍵字。
custom_probes 檔為包含兩種類型函式的 Bourne shell 程序檔。您必須將 custom_probes 檔儲存在與 JumpStart 相同的目錄中,也就是您儲存 rules 檔的地方。下面是這兩種能夠定義於 custom_probes 檔函式:
探測 - 收集您想要的資訊或執行實際工作,並設定您所定義的相對應 SI_ 環境變數。探測函式會變成探測關鍵字。
比較 - 呼叫相對應的探測函式,比較探測函式的輸出,若是符合關鍵字便傳回 0;若是不符合關鍵字便傳回 1 。比較函式會變成規則關鍵字。
custom_probes 檔可以包含任何有效的 Bourne shell 指令、變數或演算法。
您可以定義需要 custom_probes 檔中單一引數的探測與比較函式。當您使用 rules 檔中相對應的自訂探測關鍵字時,將會解譯在關鍵字後的引數(解譯成 $1)。
當您使用 rules 檔中相對應的自訂規則關鍵字時,引數將解譯為起始於關鍵字之後並在下一個&&或開始程序檔之前結束(無論那一個先發生)。
若要改善清晰度與組織性,請先在檔案的頂端定義所有的探測函式,並在其後加上所有比較函式。
探測函式的名稱必須以 probe_ 做為開頭。比較函式的名稱必須以 cmp_ 做為開頭。
開頭為 probe_ 的函式會定義新的探測關鍵字。例如,probe_tcx 函式會定義新的探測關鍵字tcx。開頭為 cmp_ 的函式會定義新的規則關鍵字。例如,cmp_tcx 會定義新的規則關鍵字tcx。
使用文字編輯程式以建立 Bourne shell 程序檔文字檔案。命名 custom_probes 檔案。
在 custom_probes 文字檔中,定義探測與比較函式。
您可以定義需要 custom_probes 檔中的引數之探測與比較函式。當使用 rules 檔案中相對應的自訂探測關鍵字時,在關鍵字後的引數將循序解譯(如 $1,$2,以此類推)。
當使用 rules檔案中相對應的自訂規則關鍵字時,該引數將在關鍵字之後,以及下一個 && 或是開始程序檔(無論那一個先到)之前循序解譯。
將 custom_probes 檔案儲存在rules 檔旁邊的 JumpStart 目錄中。
確保 root 包含 rules 檔案而許可權是設定為 644。
您可以在下列的目錄中尋找附加的探測與比較函式範例:
已安裝 Solaris 軟體之系統上的 /usr/sbin/install.d/chkprobe
在 Solaris 9 DVD 上或 Solaris 9 Software 2 之 2 CD 上的 /Solaris_9/Tools/Boot/usr/sbin/install.d/chkprobe
下列 custom_probes 檔包含測試 TCX 圖形卡是否存在的探測與比較函式。
#!/bin/sh # # custom_probe script to test for the presence of a TCX graphics card. # # # PROBE FUNCTIONS # probe_tcx() { SI_TCX=`modinfo | grep tcx | nawk '{print $6}'` export SI_TCX } # # COMPARISON FUNCTIONS # cmp_tcx() { probe_tcx if [ "X${SI_TCX}" = "X${1}" ]; then return 0 else return 1 fi } |
下列範例 rules 檔將顯示如何使用之前範例 tcx 所定義的探測關鍵字。若是系統中安裝並找到一片 TCX 圖形卡,就執行 profile_tcx。否則便執行 profile。
永遠將探測關鍵字放置在或靠近 rules檔案的開始處,以確保在其他可能依賴該探測關鍵字的規則關鍵字之前讀取並執行該關鍵字。
probe tcx tcx tcx - profile_tcx - any any - profile - |