Installation de l'application pour un démarrage au redémarrage (Solaris) BROUILLON

Créer un lien symbolique dans « /etc/init.d »

La première étape pour configurer l'application afin qu'elle s'arrête proprement lorsque le système s'arrête puis démarre dans le bon ordre au démarrage du système consiste à créer un lien symbolique vers le script de l'application dans le répertoire /etc/init.d. De nombreuses applications se contentent de copier leur script daemon dans ce répertoire mais les scripts du Wrapper nécessitent l'utilisation d'un lien symbolique afin que l'emplacement des autres fichiers de l'application puisse être déterminé sans modification du script.

Pour créer un lien symbolique dans /etc/init.d, vous devez être un utilisateur « root ». Saisissez simplement la séquence de commandes suivante :

ln -s /usr/lib/myapp/bin/myapp /etc/init.d/myapp

Vérifiez maintenant que le lien symbolique fonctionne correctement en changeant le répertoire courant pour /etc/init.d et en exécutant la commande suivante.

./myapp console

Assurez-vous d'exécuter la commande en tant que root, car ce sera le cas lorsque l'application sera démarrée au démarrage du système. Il est assez fréquent qu'il existe des différences d'environnement entre l'utilisateur root et l'utilisateur avec lequel vous êtes habituellement connecté. Ces différences peuvent entraîner des problèmes, comme l'impossibilité de localiser la JVM par exemple.

L'application devrait démarrer normalement. Appuyez sur CTRL-C pour arrêter l'application.

Enregistrement des niveaux d'exécution

Vous voudrez que votre application soit démarrée pour tous les niveaux d'exécution multi-utilisateurs et arrêtée pour les niveaux d'exécution halt, mono-utilisateur et reboot. Cela peut être réalisé en changeant le répertoire courant pour /etc/init.d puis en exécutant les commandes suivantes en tant qu'utilisateur root :

ln -s /etc/init.d/myapp /etc/rc0.d/K20myapp
ln -s /etc/init.d/myapp /etc/rc1.d/K20myapp
ln -s /etc/init.d/myapp /etc/rc2.d/S20myapp
ln -s /etc/init.d/myapp /etc/rc3.d/S20myapp

L'environnement pendant le démarrage est assez limité, aussi toute référence utilisant le chemin ou des variables d'environnement peut échouer. Pour vous éviter des ennuis, lorsque vous tenterez de redémarrer afin de tester votre installation, je vous suggère de définir dès maintenant la propriété wrapper.logfile.loglevel sur DEBUG.

Vous pouvez maintenant redémarrer votre système pour tester l'installation :

shutdown -r now

Lorsque le système sera de nouveau opérationnel, l'application devrait être en cours d'exécution.

Problèmes ?

Si vous rencontrez des problèmes, veuillez consulter le fichier journal, qui devrait contenir des indices sur le problème. Si le test de la section précédente a fonctionné mais que celui-ci a échoué, le problème est très probablement lié à des variables d'environnement manquantes.

Contrôle de l'ordre :

Si votre application utilise d'autres services, MySQL par exemple, vous devrez vous assurer que votre application est démarrée après MySQL, puis arrêtée avant MySQL. Cela se fait en contrôlant l'ordre de démarrage/arrêt. Par défaut, MySQL démarre et s'arrête avec un ordre de 20, nous pouvons donc obtenir le comportement souhaité pour votre application en utilisant l'ordre de démarrage 21 et l'ordre d'arrêt 19.

ln -s /etc/init.d/myapp /etc/rc0.d/K19myapp
ln -s /etc/init.d/myapp /etc/rc1.d/K19myapp
ln -s /etc/init.d/myapp /etc/rc2.d/S21myapp
ln -s /etc/init.d/myapp /etc/rc3.d/S21myapp

Désenregistrement des niveaux d'exécution

Pour désenregistrer les niveaux d'exécution enregistrés dans la section précédente, exécutez les commandes suivantes. Vous devrez peut-être modifier les ordres pour qu'ils correspondent à ceux utilisés lors de la création des liens symboliques.

rm /etc/rc0.d/K20myapp
rm /etc/rc1.d/K20myapp
rm /etc/rc2.d/S20myapp
rm /etc/rc3.d/S20myapp

Référence : Lancement de votre application avec le Wrapper