Accueil  Forums
Softs

Tech
Les scripts de démarragepar le mercredi 17 avril 2002
Lorsque l’on veut lancer des logiciels ou des services au démarrage du système, il faut s’attacher à la compréhension des scripts d’initialisation. Les habitués à SysV seront quelquepeu déroutés puisque le fonctionnement est complètement différent.

Les répertoires

Voilà donc où cela va se passer, il y a deux endroits concernés par cette étape :

- /System/Library/StartupItems/
- /Library/StartupItem/

La logique veut que l’on respecte le fait que le répertoire /System/ est théoriquement réservé à l’usage d’Apple. Nous allons donc uniquement travailler dans le répertoire /Library/StartupItems/. Attention, il se peut que sur votre installation, ce répertoire n’existe pas encore, n’hésitez pas à le créer en respectant les majuscules.

Ce répertoire est constitué d’autres répertoires, un par service lancé, et doit contenir au moins deux fichiers.

Les fichiers

Il existe un fichier qui stocke la liste des service à démarrer ou pas à l’amorcage du système, le fichier /etc/hostconfig. L’usage veux que chacun des scripts que nous allons créer doivent vérifier l’état de ce fichier avant de s’éxécuter. Sa syntaxe est extrêmement simple, on doit y associer des nom de service à la valeur "-YES-" ou "-NO-".

Chaque répertoire associé à un service dans /Library/StartupItems doit contenir un fichier éxécutable (script shell ou binaire) du même nom. Ainsi, si nous voulons créer un script qui lancera le serveur de mail Postfix au démarrage, nous allons créer le répertoire :

/Library/StartupItems/Postfix

ainsi que le fichier script :

/Library/startupItems/Postfix/Postfix

N’oubliez pas que ce fichier doit être éxécutable (chmod 755 Postfix). Pour ce qui est de /etc/hostconfig, nous allons juste y ajouter la ligne suivante :

Si pour une raison quelconque, nous ne voulons plus éxécuter postfix au démarrage, nous aurons juste à mettre cette ligne à "-NO-"

Voici ce que va donner notre script :

Il s’agit d’un script shell, donc la première ligne précise l’interpéteur à utiliser, rien ne nous empêche de programmer en perl par exemple.
L’appel du fichier rc.common permet de récupérer la valeur des variables initialisées dans le fichier /etc/hostconfig.
La suite concerne juste les actions à effectuer ! Après avoir testé la valeur de notre variable POSTFIX, nous lançons le serveur.

Le fichier de préférence

Nous arrivons à la partie la plus importante, celle ou aucune erreur n’est permise ! Notre répertoire contenant le script doit aussi contenir un fichier StartupParameters.plist qui va décrire quand lancer le script, sous quelle(s) condition(s), et les fonctionnalités fournies par lui.

Voilà à quoi ressemble le notre :

un ls -l du répertoire donne ceci :


-rwxr-xr-x    1 root     admin         131 Mar 21 18:18 Postfix
-rwxr-xr-x    1 root     admin         215 Apr 17 21:23 StartupParameters.plist

- Description Une simple chaine décrivant l’action
- Provides Une chaine de caractère décrivant une, ou plusieurs fonctionnalités fournies par le service, si nous en précisons plus d’une, il faut les séparer par une virgule dans les parenthèses.
- Requires ou Uses C’est la valeur clé qui va permettre au système de savoir quand lancer le service. Si l’on choisit, comme ici, d’utiliser la clé "Require", l’absence d’un service dans la liste qui suit empêchera le notre de se lancer, contrairement à la clé Uses. La valeur de se paramètre doit correspondre à une vlaur "Provides" fournies par un autre service.
- OrderPreference En cas d’égalité entre notre service et un autre dans l’enchaînement calculé par le gestionnaire de démarrage, nous pouvons préciser une priorité. Evidemment, si le script avec lequel nous somme en concurrence précise la même priorité, le système départagera les protagonistes d’une manière proche du hasard ! Les valeurs possibles sont : first,early,none,late,last
- Messages Suivent les message de démarrage et d’arrêt qui seront affichés dans la procédure de démarrage graphique, notez que l’argument stop est ignoré à l’heure actuelle.

Voilà, vous savez tout à présent. Il reste une chose à signaler, lune des plus importante : le service NetInfo fournit entre autres la gestion de base des utilisateurs du système... Sans NetInfo, n’éspérez lancer aucun service ne tournant pas en root, ce qui est le cas par défaut de Postfix et MySql par exemple.



Pour toutes informations concernant ce site, vous pouvez contacter le webmaster