Automatiser le lancement d’un programme lors du démarrage de CentOS : Cas du conteneur de servlet TOMCAT.

Automatiser le lancement d’un programme lors du démarrage de CentOS : Cas du conteneur de servlet TOMCAT.

Introduction

Après avoir souvent écrit des programmes, des scripts Shell et/ou batch, et parfois des démons. On souhaite souvent qu’ils se lancent au démarrage du système d’exploitation. Ceci pour de multiples raisons, automatisation de certains traitements, configurations particulières, paramétrages de certains autres programmes. Cette tâche ne se trouve pas souvent très évidentes.
Dans notre document, nous allons étudier un cas très précis et claire qui arrive souvent aux développeurs java. Il s’agit de lancer le service Tomcat au démarrage du système d’exploitation communautaire CentOS.

Prérequis

Vous devez avoir téléchargé une archive (.tar.gz) du logiciel Tomcat. Ici, nous avons travaillé avec la version 7.0.37. Vous y trouverez cela sur le site de Apache (http://tomcat.apache.org/download-70.cgi). Le système d’exploitation CentOS doit déjà être installé et démarré.

Installation et configuration de Tomcat sur CentOS

Il faut dans un premier temps créer un utilisateur Tomcat qui nous permettra de lancer notre service, question de ne pas le faire avec l’utilisateur root pour éviter des manipulations malencontreuses. On peut le faire via la commande :
useradd tomcat et ensuite suivre les consignes qui arriveront.
La création de l’utilisateur tomcat étant faite, il faut ensuite copier l’archive de tomcat (apache-tomcat-7.0.37.tar.gz dans notre cas) dans le répertoire de travail de l’utilisateur tomcat (ici /home/tomcat).
Décompressez ensuite l’archive précédemment copier grâce aux commande gunzip ou tar xzf dans le répertoire /home/tomcat et après la décompression supprimer l’archive pour récupérer l’espace disque. Les commandes prévues à cet effet sont les suivantes :
tar xzf apache-tomcat-7.0.37.tar.gz
rm –Rf apache-tomcat-7.0.37.tar.gz
Mettre à jour la variable d’environnement PATH afin que le lancement du service tomcat puisse être possible à partir de n’importe quel répertoire. Les commandes suivantes pourront vous aider :
PATH=$PATH:/home/tomcat/apache-tomcat-7.0.37
export PATH
Il faut maintenant créer l’utilisateur administrateur du service Tomcat. Cela se fait par configuration dans un fichier XML : tomcat-users.xml
Editer le fichier tomcat-users.xml qui se trouve dans le répertoire /home/tomcat/apache-tomcat-7.0.37/conf, décommenter la section , ajouter dans cette section la ligne
.
Vous venez de terminer l’installation de Tomcat. Pour tester si l’installation s’est bien effectuée, il suffit de taper la commande startup.sh
La commande shutdown.sh permet d’arrêter. Il faut maintenant automatiser son lancement, nous n’allons pas le faire manuellement tout le temps.

Automatiser le lancement de tomcat

Expliquons le principe. Pour lancer automatiquement un processus au démarrage de Linux, plusieurs étapes doivent être prises en compte.
Au départ, on crée un fichier qui doit contenir les spécifications de comment les scripts doit se comporter conformément aux évènements (démarrage du système, arrêt du système, redémarrage du système, demande du statut du processus, rechargement du processus) qui arriveront. Pour chacun de ces évènements, là il faut pouvoir dire comment le programme à lancer doit se comporter. Il faut noter que ce fichier doit se retrouver dans le répertoire /etc/init.d
Par ailleurs, les systèmes linux possédant la notion de niveau d’exécution qui varient de 0 à 6 qui signifient :
Р0 : arr̻t du syst̬me
Р1 : mode mono-utilisateur pour administration syst̬me
Р2 : mode multi-utilisateur, sans r̩seau
Р3 : mode multi-utilisateur, avec r̩seau
Р4 : mode inutilis̩
– 5 : mode multi-utilisateur avec xwindows
Р6 : red̩marrage du syst̬me
Il faut pouvoir dire pour le processus qui se lance au démarrage, à quel niveau d’exécution il est mis en marche et à quel niveau il doit être en arrêt.
Ces deux étapes sont fondamentales pour normaliser encore notre script. On dit que le script est compatible POSIX et pourra fonctionner sous un Linux SYSTEM V. De nombreux bouquins vous permettrons de mieux comprendre ces notions. Passons à un exemple pour nous plonger dans notre objectif.
Ces deux étapes sont fondamentales pour normaliser son script. On dit que ton script est compatible POSIX et pourra fonctionner sous un linux SYSTEM V. Vous pouvez mieux comprendre ces notions dans des bouquins mieux lotis à cet effet. Passons à l’exemple afin de mieux comprendre.
Créer un fichier qui s’appelle tomcatd (pour tomcat daemon, noter que c’est juste un nom arbitraire). Dans ce fichier il faut saisir le script suivant :

#!/bin/bash
#
# /etc/init.d/tomcatd
#
# chkconfig: 2345 20 80
# description: this script is designed to
# launch tomcat at the starting point of
# CentOS

# Source function library
. /etc/init.d/functions

TOMCAT_HOME=/home/tomcat/apache-tomcat-7.0.37/bin
START_TOMCAT=/home/tomcat/apache-tomcat-7.0.37/bin/startup.sh
STOP_TOMCAT=/home/tomcat/apache-tomcat-7.0.37/bin/shutdown.sh
PROG= »tomcat »

start(){
echo -n « Starting $PROG:  »
cd $TOMCAT_HOME
su – tomcat -c ${START_TOMCAT}
echo « done. »
}

stop(){
echo -n « Shutting down $PROG:  »
cd $TOMCAT_HOME
su – tomcat -c ${STOP_TOMCAT}
echo « done. »
}

restart(){
#We need to know first if the service is on
stop
sleep 10
start
}

relaod(){
restart
}

case « $1″ in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
relaod
;;
*)
echo « Usage : $0 {start|stop|restart|reload} »
esac

exit 0

Expliquons le rôle des instructions que nous avons utilisé dans le script précèdent.
. /etc/init.d/functions
Cette instruction permet de faire appel à des fonctions du système CentOS si jamais notre script en fait usage.

TOMCAT_HOME=/home/tomcat/apache-tomcat-7.0.37/bin
START_TOMCAT=/home/tomcat/apache-tomcat-7.0.37/bin/startup.sh
STOP_TOMCAT=/home/tomcat/apache-tomcat-7.0.37/bin/shutdown.sh
PROG= »tomcat »
Les variables que nous avons utilisé dans notre script.
start(){
echo -n « Starting $PROG:  »
cd $TOMCAT_HOME
su – tomcat -c ${START_TOMCAT}
echo « done. »
}

Ceci représente le bloc d’instructions qui s’exécutent lorsque le système CentOS démarre initialement. Pour les autres blocs, c’est pareil sauf que c’est pour l’arrêt du système et le redémarrage.
su – tomcat -c ${START_TOMCAT}

Cette instruction permet à l’utilisateur tomcat d’exécuter ce processus de lancement de Tomcat en tant que utilisateur root.
Après avoir édité son fichier tomcatd, il faut se connecter en tant que root pour l’enregistrer dans le répertoire /etc/init.d. C’est le répertoire ou se trouve tous les scripts qui se lancent au démarrage de CentOS.
Il faut maintenant signaler à CentOS que ce script doit se lancer au démarrage. Ceci est possible par la commande suivante :
chkconfig –add tomcatd

Ensuite, il faut définir les niveaux d’exécution dans lesquels le processus doit être en marche dans notre cas, nous avons choisi, les niveaux 2, 3, 4 et 5. La commande suivante illustre clairement cela.
chkconfig –level 2345 tomcatd on

Après ces deux instructions, vous pouvez vérifier que votre script marche correctement en tapant la commande suivante :
service tomcatd start

Le service devrait se lancer et vous devriez voir le message done à la fin.
Ainsi, redémarrez votre système CentOS, et lancer le lien suivant sur un navigateur http://localhost:8080/
La page suivante devrait s’afficher preuve que votre conteneur de servlet se lance au démarrage du système : Vous avez réussi.

Contacter l’auteur de cet article.

Sachant que toute œuvre humaine n’est pas parfaite, je suis ouvert aux critiques et suggestions en provenances de quiconque aura lu. Vous pouvez me contacter par mail aux adresses suivantes : yimengael@gmail.com ou sur ma page developpez.com, vous pouvez me laisser un message http://www.developpez.net/forums/u283190/yimson/

Le metier de développeur

Introduction.

Les technologies de l’information et de la communication occupent une place de plus en plus importante dans notre vie quotidienne. Les développeurs informatiques, en particulier des applications de gestion, sont donc très recherchés. Les entreprises n’hésitent pas à recruter des débutants, et à leur confier très rapidement des missions à l’étranger. Il faut noter que l’expérience spécifique et approfondie d’un matériel, d’un système d’exploitation ou d’un domaine applicatif constitue un bel atout à l’embauche, indépendamment du niveau de qualification. Actuellement, les principaux recruteurs sont les éditeurs de logiciels et les SSII entendu société de services et d’ingénierie informatique. En France, on en dénombre une multitude.

Les missions d’un développeur.

Le métier de développeur est aussi connu sous l’appellation d’analyste-programmeur car ce dernier assure dans la plupart des cas le double rôle de la modélisation et du codage. D’une manière générale, le développeur conçoit, développe, améliore et met au point des programmes informatiques, de la phase d’études à leur intégration. Il identifie les demandes du client, analyse les besoins des utilisateurs, établit un cahier des charges dans lequel il décrit les solutions envisagées, avant de transcrire en langage de programmation la solution sur mesure retenue. En fonction de l’importance du projet, il l’élabore seul ou partiellement, souvent sous la responsabilité d’un chef de projet. Participant habituellement aux essais et au lancement des applications, il peut être en charge de la rédaction des guides d’utilisation, de la formation des utilisateurs, de la maintenance voire du support technique.

Pour écrire un programme, le développeur informatique utilise généralement des logiciels de travail « prêts à l’emploi : solutions existantes » qu’il paramètre pour les personnaliser. Il assure ensuite l’assemblage puis la validation des différentes parties du programme (bases de données, développements particuliers…) en vérifiant la conformité avec le cahier des charges et les normes et standards en vigueur dans l’entreprise. La phase de test, appelée phase de recette correspond aux derniers ajustements et corrections avant l’acceptation du client et la livraison opérationnelle sur le site.

Parmi les exemples de développement, citons des applications destinées à fonctionner sur un ordinateur, un serveur ou tout système embarqué : des consoles de jeux aux puces de cartes bancaires en passant par les Smartphones. Ou encore des outils de gestion tels des réseaux de télécommunication ou un microprocesseur. Le développeur doit donc maîtriser plusieurs méthodes de conception et d’administration des bases de données, des outils de développement ou systèmes d’exploitation et, bien sûr, un ou plusieurs langages de programmation.

Les évolutions dans la carrière d’un développeur.

Les possibilités d’évolution sont nombreuses, et il ne faut pas hésiter à changer d’entreprise pour les saisir, la mobilité est courante dans le milieu. Le grade d’intégrateur ou d’analyste-programmeur sera tout d’abord attribué au jeune diplômé (bac +2). Il pourra atteindre, au terme de quelques années d’expériences ou d’études supplémentaires, le grade d’ingénieur d’études ou d’ingénieur de développement. En fonction de son expérience, le professionnel peut évoluer dans le domaine de l’expertise technique (administrateur de systèmes, de réseaux, de bases de données), de l’encadrement (chef de projet, directeur technique, consultant logiciel) ou commercial (ingénieur technico-commercial).

Les qualités d’un développeur.

Logique, rigoureux et méthodique, le développeur doit se montrer autonome et motivé. Il possède un esprit à la fois analytique et de synthèse. Il met ses capacités de concentration et d’imagination au service de ses programmes. Responsable, réactif et disponible, il fait preuve d’une excellente qualité d’écoute, sachant adapter son travail en fonction de celui de son équipe et des situations nouvelles. Il aime la compétition et relever des défis. Technique et créatif, il se tient informé de l’évolution de son environnement, actualise ses connaissances et s’auto-forme régulièrement.

Conclusion et divers.

Qu’il soit technicien ou ingénieur, le développeur travaille dans une société possédant un service informatique ou multimédia, pour une société de services et d’ingénierie informatique (SSII), des sociétés d’édition de logiciels ou directement avec des prestataires de services. Ses fonctions sont variables selon les postes. Une grande polyvalence sera exigée dans les petites structures tandis que ses attributions seront davantage spécialisées dans des services plus importants. De nombreux professionnels exercent en tant que détachés et investissent pour quelques semaines à quelques années les locaux de leur entreprise cliente.

Banque, assurances, transports, industrie, graphisme, services etc., le développeur intervient dans la quasi-totalité des secteurs. Mais on distingue trois grands domaines d’application : l’informatique de gestion, l’informatique industrielle et les télécommunications et réseaux. Dans le premier, il développe des applications utilisées par les services fonctionnels de l’entreprise : comptabilité, facturation, ressources humaines, commercial, logistique etc. Dans le domaine de l’informatique industrielle, scientifique et technologique, il s’attache au développement d’applications destinées à la recherche scientifique, à la production industrielle (robotique, fabrication assistée par ordinateur), aux améliorations techniques d’appareils électroniques (hi-fi, téléphones portables, GPS). Enfin dans le très dynamique domaine des télécommunications et réseaux, il intervient par exemple sur la téléphonie fixe et mobile ou la télévision numérique.

L’émergence de l’Internet a engendré de nouveaux métiers tels que le développeur web concevant des applications, des services en ligne ou des sites internes et externes. Citons également le développeur/animateur Flash, le développeur web mobile ou le développeur multimédia. A l’heure actuelle, les SSII recrutent majoritairement les professionnels ayant des compétences en informatique mobile ou en langages orientés nouvelles technologies. Si les conditions d’exercice peuvent parfois être difficiles – travail de nuit, astreintes 24h/24, déplacements nationaux ou internationaux alors, les salaires en tiennent généralement compte.