Les scripts de contrôle d'exécution sont responsables du démarrage et de l'arrêt des services lorsque le système modifie les niveaux d'exécution, par exemple lors du démarrage et de l'arrêt. Ces scripts résident dans les répertoires rc # .d où le signe # est remplacé par le niveau d'exécution, tels que rc2.d, rc3.d et rc0.d.
Les scripts de contrôle d'exécution bien écrits doivent accepter au moins les commandes start et stop en tant que paramètres d'exécution et peuvent éventuellement accepter des paramètres supplémentaires tels que le redémarrage et le statut. Lorsqu'un script de contrôle d'exécution s'exécute avec un paramètre de démarrage, il lance les processus dont il est responsable. De même, le paramètre stop force le script à mettre fin à ces processus.
Les répertoires de contrôle d'exécution contiennent un certain nombre de scripts de contrôle d'exécution commençant par K ou S en majuscule, suivis de deux chiffres. Lorsque le système change de niveau d'exécution, les scripts du répertoire correspondant sont exécutés dans un ordre trié. Par conséquent, un script commençant par K00 sera exécuté avant K99 et avant S00. Un script commençant par la lettre K est un script de suppression et sera exécuté avec un paramètre d'arrêt. Les scripts S seront exécutés avec un paramètre de démarrage. De cette manière, le même script peut être utilisé pour démarrer et arrêter des processus.
Il est courant de placer un script générique, newservice par exemple, dans /etc/init.d, puis de créer des liens logiques vers ce script dans le répertoire rc # .d approprié, précédé d'une combinaison appropriée de K ou de S et d'un numéro. Par exemple, pour créer un script de suppression anticipé dans rc0.d pour un service de script de script rc situé dans /etc/init.d, exécutez en tant que superutilisateur:
cd /etc/rc0.d
ln -s… /init.d/newservice K05newservice
Lorsque vous arrêtez ou redémarrez le système, vous modifiez son niveau d'exécution sur 6 ou 5, respectivement. Il n'y a pas de répertoire /etc/rc5.d ou /etc/rc6.d. Le passage au niveau d'exécution 0 (invite openboot) implique la même procédure que l'arrêt ou le redémarrage. Les niveaux d'exécution 5 et 6 partagent le répertoire /etc/rc0.d. Il est important d'inclure des scripts de suppression pour des services tels que des bases de données qui pourraient être corrompues si elles n'étaient pas correctement arrêtées.
Pour un exemple de script de contrôle d'exécution, reportez-vous à la recette technique. Créez un script de contrôle d'exécution Solaris de base.