Les mots-clés de sondes et de règles décrits dans les sections Mots-clés et valeurs des règles et Mots-clés et valeurs des sondes peuvent ne pas être suffisamment précis pour vos besoins. Vous pouvez définir vos propres mots-clés personnalisés en créant un fichier custom_probes.
Le fichier custom_probes est un script Bourne shell qui comporte deux types de fonctions. Vous devez impérativement enregistrer votre fichier custom_probes et votre fichier rules dans un même répertoire JumpStart. Vous trouverez ci-dessous les deux types de fonctions que vous pouvez définir dans un fichier custom_probes.
Sonde : collecte les informations dont vous avez besoin ou exécute ce que vous lui avez demandé, et configure une variable environnementale SI_ correspondante d'après votre définition. Les fonctions d'une sonde deviennent des mots-clés de sondes.
Comparaison : appelle une fonction de sonde correspondante, compare les résultats obtenus par la fonction de sonde et renvoie l'indicateur 0 en cas de correspondance établie avec le mot-clé ou 1 dans le cas contraire. Les fonctions de comparaison deviennent des mots-clés de règles.
Votre fichier custom_probes peut comporter n'importe quel commande, variable ou algorithme Bourne shell valide.
Vous pouvez définir des fonctions de sonde et de comparaison nécessitant un seul argument dans votre fichier custom_probes. Lorsque vous utilisez le mot-clé de sonde personnalisé correspondant du fichier rules, l'argument qui suit le mot-clé est interprété (comme $1).
Lorsque vous utilisez le mot-clé de règle personnalisé correspondant du fichier rules, les arguments sont interprétés en séquence. La séquence commence après le mot-clé et prend fin avant le prochain && ou le script de début, le premier des deux prévalant.
Le fichier custom_probes doit remplir les conditions suivantes :
dépendre de root ;
être exécutable et disposer du niveau de permission 755 ;
comporter au moins une fonction de sonde et une fonction de comparaison correspondante.
Dans un souci de clarté et d'organisation, définissez d'abord toutes vos fonctions de sonde en début de fichier, puis l'ensemble des fonctions de comparaison.
Le nom d'une fonction de sonde doit commencer par probe_. Le nom d'une fonction de comparaison doit commencer par cmp_.
Les fonctions qui commencent par probe_ définissent de nouveaux mots-clés de sondes. La fonction probe_tcx, par exemple, définit le nouveau mot-clé de sonde tcx. Les fonctions qui commencent par cmp_ définissent de nouveaux mots-clés de règles. cmp_tcx, par exemple, définit le nouveau mot-clé de règle tcx.
Créez un fichier texte de script Bourne shell dans l'éditeur de texte de votre choix. Nommez ce fichier custom_probes.
Dans votre fichier texte custom_probes, définissez vos fonctions de sonde et de comparaison.
Vous pouvez définir des fonctions de sonde et de comparaison nécessitant des arguments dans le fichier custom_probes. Lorsque vous utilisez le mot-clé de sonde personnalisé correspondant du fichier rules, les arguments qui suivent le mot-clé sont interprétés en séquence (comme $1, $2 et ainsi de suite).
Lorsque vous utilisez le mot-clé de règle personnalisé correspondant du fichier rules, les arguments sont interprétés en séquence. La séquence commence après le mot-clé et prend fin avant le prochain && ou le script de début, le premier des deux prévalant.
Enregistrez votre fichier custom_probes dans le répertoire JumpStart à côté du fichier rules.
Vérifiez que le fichier rules dépend de root et que le degré de permission est réglé sur 644.
Vous pouvez définir d'autres exemples de fonctions de sonde et de comparaison dans les répertoires suivants :
/usr/sbin/install.d/chkprobe sur un système sur lequel est installé le logiciel Solaris ;
/Solaris_10/Tools/Boot/usr/sbin/install.d/chkprobe sur le DVD du système d'exploitation Solaris ou le CD 1 du logiciel Solaris.
Le fichier custom_probes suivant comporte une fonction de sonde et de comparaison qui teste la présence d'une carte graphique 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 if } |
Le fichier rules suivant illustre l'utilisation du mot-clé de sonde défini dans l'exemple précédent, tcx. En cas de détection d'une carte graphique TCX installée sur un système, profile_tcx s'exécute. Si ce n'est pas le cas, c'est profile qui s'exécute.
Placez toujours les mots-clés de sonde au début du fichier rules ou tout du moins dans les premières lignes. Cette position assure que les mots-clés sont lus et exécutés avant que d'autres mots-clés de règle ne dépendent des mots-clés de sonde.
probe tcx tcx tcx - profile_tcx - any any - profile - |