Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Linux : Les services système

Démarrer et arrêter les services

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Gérez l'exécution des services avec systemd. Configurez un service de sorte qu'il soit lancé automatiquement au démarrage de la machine.
08:14

Transcription

Alors cette commande service qui sert donc à gérer les services comme son nom l'indique, elle est assez explicite dans son nom. C'est une vieille commande qui a été conçue à une époque où « init » avait basé le démarrage des différents services sur des « scripts shell » et le problème c'est que si on appelait directement le « script Shell » on passait au « script shell », l'environnement de l'utilisateur. Ce qui n'était pas toujours une bonne idée Pour éviter de le passer, on utilisait la commande service qui nettoyait l'environnement de l'utilisateur avant de lancer la commande. Elle est restée et suivant les différentes générations de « init » qu'on a eues, elle a continué à fonctionner et aujourd'hui finalement, elle va appeler la bonne commande. Ici, si je fais un « init » « rsyslog », « rsyslog status » pour en obtenir l'état, pour savoir dans quel état est mon « rsyslog », elle me dit quoi ? Elle me dit « Redirecting to systemctl ». En réalité, la commande qu'elle va appeler est la commande « systemctl ». Si j'avais été sur une Ubuntu pas la toute dernière génération qui elle travaille avec systemd mais les générations juste avant qui étaient avec un autre mécanisme que systemd, un mécanisme qui s'appelle « upstart », elle allait appeler la bonne commande qui est la commande « start » ou la commande « initctl ». Si ça avait été avec encore de plus vieux systèmes qui fonctionnent avec des scripts « shell », ma commande service aura appelé le script « /etc/init.d/rsyslog », le script qui permettait de gérer à l'époque le démarrage de « rsyslog ». Donc là on le voit, cette commande-là, elle est très pratique. Maintenant, malgré le fait qu'elle soit là, je vais me concentrer plutôt sur la commande « systemctl », puisque systemd aujourd'hui, c'est le système qui est présent sur les grandes distributions comme la RedHat, CentOS, comme la Debian, comme la « Ubuntu », la « Mint », toutes ces familles de distribution-là qui sont quand même les plus courantes. Alors ce « systemctl », alors je vais effacer ma page, je fais Ctrl + L pour effacer la page, si je fais un « systemctl status rsyslog », c'est la commande que je viens de taper, elle va me dire quoi ? Tout d'abord, là où elle est intéressante, c'est qu'elle essaie de me présenter pas mal de choses. Elle me met un petit feu vert, ici, le petit feu vert signifie quoi ? Le petit feu vert signifie tout simplement que le service, les feux sont au vert, ils fonctionnent bien. « Active », oui, il est actif, il est en train de tourner. Maintenant, j'ai d'autres choses intéressantes. Quand je demande le statut, il va me dire ce que fait ce service-là. Ici, « rsyslog » on voit, c'est le système qui gère la journalisation, le « System Logging Service », c'est lui qui gère le logging des activités du système. « Loaded », ça veut dire que lorsque systemd a démarré, il a trouvé une configuration associée à ce service-là. D'ailleurs, la configuration, elle est dans le fichier, le « usr/lib/systemd/system /rsyslog.service ». Attention, le fait qu'il y a une configuration ne veut pas dire d'une part que les processus sont installés ou d'autre part qu'elle va démarrer. Ça veut dire que si jamais les processus sont présents et qu'on lui dit de démarrer le service, la commande « systemctl » saura comment le démarrer. C'est la conf du : comment est-ce que je le démarre, quand est-ce que je le démarre, etc. Le point suivant, « enabled », ça signifie que dans le cas ici de mon « rsyslog », « rsyslog » sera activé dès le boot de la machine. Je peux très bien avoir des services comme par exemple le service « httpd » qui est installé sur ma machine, qui lui existe, que je peux démarrer mais qui n'est pas démarré automatiquement pendant le boot. Il faut que je le démarre manuellement. Alors on verra comment le passer en automatique mais l'idée du « enabled » c'est : est-ce que ce service-là a démarré automatiquement lors du boot et notamment : est-ce que dans la configuration par défaut quand il est installé, il est démarré automatiquement ou pas ? Est-ce que c'est une action de l'administrateur ou pas ? On le voit avec ce « vendor preset ». Si j'appelle le « systemctl status » de « httpd », je vais voir quoi ? Je vais voir que la configuration est chargée, elle me donne le nom du fichier de la configuration, qu'actuellement, il est « disabled » et puis que le « vendor preset », il est « disabled ». Et est-ce qu'il est actif ? J'ai un point noir, le point noir signifie qu'il n'est pas actif, il est inactif, « dead », il n'est pas en train de tourner et puis je peux voir qu'il a déjà été démarré, ça c'est encore une fois, un extrait des logs comme j'avais ici, un extrait des logs qui va me permettre de voir quelques éléments qui sont mis dans les logs, liés au démarrage ou à l'arrêt de ce service. On va voir à quoi ça sert dans un instant. Si je reprends ici donc le « Active », il me dit depuis quand est-ce qu'il a été démarré. Le « Main PID », c'est le processus qui a démarré. Donc là, c'est le processus numéro 1043, bon là, il n'y en a qu'un mais éventuellement, il peut en lancer d'autres. Et puis le « CGroup » attaché, le « CGroup », c'est une étiquette qu'on va lier à un processus et qui, quand ce processus-là va créer d'autres processus, aura également cette étiquette-là. Et puis là, le petit extrait des logs. Donc la même chose pour le web, pour le serveur web, c'est le server HTTP qui est là, le fichier de configuration, il est là, il est désactivé, par défaut, il est désactivé, actuellement il n'est pas en train de tourner, les documentations-là, j'ai deux lignes en plus qui me donnent les pages du manuel de la documentation Unix concernant ce serveur-là, ce service-là, le serveur httpd et puis un extrait des logs. Juste quelques éléments des logs, ce n'est pas en entier, c'est juste quelques éléments, si on utilise un « -l », on a les logs en entier. Alors, à quoi est-ce que ça, ça va servir ? Si je démarre donc « systemctl » et cette fois si je démarre, ça va être tout simplement la commande « start httpd » et ça va démarrer le service http. Si jamais je fais ça, il ne me dit rien mais s'il ne me dit rien à priori, c'est que ça s'est bien passé. Si je fais deux fois flèche haut pour revenir sur ma commande « status », je vais visualiser l'état du processus « httpd » et là je vais voir quoi ? Je vois que cette fois, il est passé au vert, qu'il est actif. J'ai la liste des processus qui ont été créés par le processus principal. Donc j'ai le 5045, 48, 49, 50, 51, 52, ils ont tous été créés là, ils sont tous visibles et avec mon petit extrait des logs, comme quoi ça fonctionne. En plus, ici pour le serveur web, j'ai quelques infos sur le trafic du serveur web. Alors, ce que je vais faire, c'est que je vais aller éditer la configuration de ce service-là et je vais mettre n'importe quoi au début pour générer une erreur. Donc je l'ai ouvert avec « vi », je fais un « O » majuscule pour insérer une ligne avant la ligne courante, j'écris « blabla », j'écris quelque chose, Échap, « :w » pour enregistrer, « :q », voilà. Ce que j'ai fait en faisant ça, c'est que j'ai rajouté une ligne qui dit blabla, qui ne veut rien dire, qui va générer une erreur forcément au début de la configuration du serveur web. Mon idée, c'est qu'est-ce qui se passe avec « systemctl » cette fois quand je le redémarre ? Donc je vais faire « systemctl restart httpd » et là, qu'est-ce qui se passe ? Il va tenter de le redémarrer et il m'affiche un message d'erreur. Donc du coup, il me propose de regarder avec le « status » pour voir ce qui s'est passé, donc je vais rappeler, la commande status qui est un petit peu plus haut, voilà elle est là et là cette fois « Insert service » qui a tenté de démarrer et qui n'a pas réussi à démarrer, le feu est au rouge pour attirer mon attention. Donc là, est-ce qu'il est actif ? Il a échoué, ça veut dire qu'on a tenté de le démarrer et ça n'a pas fonctionné. Il me donne les processus qui ont généré l'erreur et j'ai un petit extrait, dit « log », quand il a tenté de démarrer le service. Et d'ailleurs, ce qui est intéressant, c'est que je peux voir ici : « Syntax error on line 1 » du fichier « Invalid command » blabla. Donc il est capable, dans le cas du httpd, ça peut être différent suivant les autres services, de me dire où se trouve l'erreur. Je n’ai pas besoin de creuser dans les logs à la main, pour savoir où se trouvent les erreurs. Donc, je vais aller corriger le problème. Donc « vi » voilà, je le rappelle, je fais « dd » pour effacer la ligne courante, « :w », « :q » et ça devrait fonctionner. Si je fais un « restart », voilà, « restart », il ne me dit rien. Si je rappelle le statut, cette fois il tourne. Mais si ma machine démarre, il est toujours désactivé. Si jamais je veux activer ce service-là, lors du boot de la machine, j'aurais juste à faire « systemctl enable httpd ». Donc là, qu'est-ce qu'il fait ? Il crée des liens symboliques, il fait ce qu'il faut mais si je rappelle le statut, il va me dire quoi ? Il va me dire que cette fois, il est « enabled ». Si jamais j'arrête la machine et que je la redémarre, lors du démarrage de la machine, le serveur web sera démarré. Donc on le voit, cette commande « systemctl » est extrêmement pratique pour gérer les services qui fonctionnent pour les démarrer, pour les arrêter, pour les activer lors du boot ou les désactiver lors du boot puisque si je veux à nouveau la désactiver, ce n'est pas « enable » que je vais faire, c'est le « disable » tout simplement et si jamais je fais le statut, je suis repassé à « disabled ». Donc voilà un petit peu pour cette commande « systemctl » qui permet de gérer les services en cours sur la machine.

Linux : Les services système

Découvrez les services qui tournent en permanence sur votre système et adaptez-les en fonction de vos besoins. Abordez la gestion des logs, la synchronisation horaire, etc.

2h16 (22 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Thématiques :
IT
Systèmes d'exploitation
Spécial abonnés
Date de parution :25 avr. 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !