Linux : Les services système

S'initier aux services complexes

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Allez plus loin dans les services du système et étudiez un service plus complexe, avec une dépendance. Puis, vous apprendrez à personnaliser ce service.
06:57

Transcription

On va regarder maintenant comment personnaliser ces fichiers de configuration. Du coup on va regarder un qui est un peu plus complexe. On va regarder celui qui est lié à « ssh ». Si jamais je fais mon « systemctl status sshd », c’est comme ça qu’il s’appelle, on voit qu’il est chargé, il est activé lors du boot, le fichier, c’est celui-là, il est en train de tourner, ça veut dire qu’il est bien défini. Si jamais je fais un « systemctl cat sshd.service », j’affiche le fameux fichier de configuration, j’ai une partie « unit », ce n’est pas surprenant, une partie « service », pas surprenant non plus et une partie « install ». ça va ressembler curieusement à ce qu’on avait précédemment. Dans la partie « description », on a la description qu’on va retrouver ici, ce n’est pas un problème. Ici, j’ai une partie en plus, qui correspond à la documentation, simplement qui me dit « doc » quand je fais le statut, que je sache quelle page du manuel aller regarder, j'ai : quand est-ce que je dois le lancer et de quoi il dépend, le « wants », ça veut dire que là, mon « sshd » va dépendre d’un service qui s’appelle « sshd-keygen ». On va les regarder dans un instant. Après, j’ai ce qui est spécifique au service. « Type=forking », ça veut tout simplement dire que systemd va lancer le serveur « ssh », puis va passer à la suite. Le serveur « ssh » va être capable de se débrouiller tout seul. Il n’est pas dépendant du processus lanceur de qui l’a lancé. Il va se débrouiller tout seul dans son coin. Or, c’est la même chose, on a un fichier qui va contenir le numéro du processus du serveur quand il sera lancé, son fichier d’environnement, qu’est-ce qui est lancé, quel est le processus, le programme lancé pour exécuter le serveur. Jusque-là rien de nouveau, ça ressemble énormément à ce qu’on avait vu avec rsyslog. Ici j’ai une petite différence, c’est le « ExecReload ». Le « ExecReload », c’est quelque chose d'un petit peu particulier. Il y a certains services, notamment les services réseaux. On a la possibilité de, quand on va vouloir changer la configuration et les relancer, on peut faire un « restart ». Le problème du « restart », c’est qu’il va faire un « stop », puis il va faire un « start ». La conséquence est qu’il va se passer quelques instants où le service ne va pas fonctionner, il va être coupé. Ce qui peut être problématique sur certains serveurs. À la place, on pourra faire un « systemctl reload », le nom du service. Le « reload », il ne va pas arrêter le serveur. Il va envoyer un signal. En réalité, il va lancer cette commande-là, il va lancer la commande « kill ». La commande « kill » va envoyer le signal « hup », h-u-p, au processus qui a été créé quand le programme a été lancé. La conséquence, c’est que quand un processus serveur reçoit le signal « hup », ce qu’il va faire, c’est qu’il va recharger sa configuration. Il va retourner lire sur le disque dur, le fichier de configuration, et prendre en compte ce fichier de configuration. Si j'effectue une modification dans le fichier de configuration, qui n’est pas une modification, qui nécessite un redémarrage du processus, par exemple une modification où je ne change pas l’adresse IP sur laquelle j’écoute ou ce genre de chose-là, je change juste des options. Je vais dire à mon processus : reprends en compte le fichier de configuration. Il va aller le charger en mémoire et il va le prendre en compte. Si rien n’a changé dedans, ça ne changera pas son comportement. Si j’avais changé le fichier de configuration, il prendra en compte le nouveau comportement. Le « kill mode », c’est quand on va vouloir détruire le service. Est-ce qu’on détruit juste le processus ou d’autres choses ? Il suffit de détruire le processus. On a « restart=on-failure » et puis on a un « restart sec ». Le « restart sec », c’est que si jamais le processus plante, on n’a que, il va le redémarrer avec le « on-failure », il ne va pas redémarrer tout de suite, il va attendre ici 42 secondes. Ce qui va m’intéresser ici, c’est que je vais aller voir ce service-là, le « sshd keygen.service ». Pour ça, je vais faire un « systemctl cat » du « keygen ». Le « keygen », ça va être quoi ? C’est une « unit », voilà, on retrouve la partie « unit », on retrouve une description. Et puis là on retrouve quelque chose qui est « condition file not empty », « différent de ». Dans la partie « unit », on va avoir quoi ? Dans la partie « unit », on va voir une partie description, ça ne change rien. Ce qu’il faut savoir, c’est qu’ici, ce service-là, ce qu’il va faire, c’est que juste après qu’on ait installé la machine, il ne pourra pas démarrer le serveur « ssh » parce qu’il faut préalablement créer les clés spécifiques à la machine. Ça va être le rôle de ce service-là. Et justement, on va exécuter ce programme-là qui aura pour effet de créer les clés, à une condition, c’est qu’il n’y ait pas de clés présentes sur la machine. Si ces fichiers-là sont présents et ne sont pas vides, alors on ne démarrera pas le service. Si ces fichiers-là sont absents ou sont vides, alors on démarrera le service, ce qui aura pour effet de créer les clés du service. Et chaque fois que « ssh » va démarrer, il va regarder s’il possède des clés. S’il ne possède pas de clé, il va lancer la commande pour les créer. C’est ça l’idée de ce service-là. L’opération suivante que je vais souhaiter faire, moi, c’est aller modifier le fichier de configuration de « sshd ». Moi je voudrais que le temps de redémarrage ne soit pas de 42 secondes mais soit de 62 secondes, par exemple. Pour ça, je vais faire un copier-coller parce que je suis un petit peu flémard, je n'ai pas envie de tout retaper à la main. Je copie ça en mémoire. Et puis je vais appeler ma commande « systemctl ». Mais au lieu de faire un « cat sshd.service », je vais faire un « edit sshd.service ». Et là on va avoir une petite surprise parce que si jamais je fais ça, il ne me présente pas le fichier tel que je l’avais. Il me présente un fichier vide. Il me présente un fichier vide qui est en réalité, pourquoi il fait ça, il va bien garder le fichier d’origine tel qu’il est et ici je vais entrer des directives qui vont venir compléter le fichier d’origine. Je colle ce que j’avais écrit, je n’ai pas besoin d'avoir la même chose, je vais juste garder la partie « restart sec », donc je vais effacer tout le reste. J’efface tout le reste, je garde ma partie « service » par contre car faut que ce soit dans la partie service. Et au lieu de mettre un temps de redémarrage de 42 secondes, je vais mettre 62 secondes. J’ai juste changé un des paramètres, j’ai personnalisé le système. Là, comme il m'a lancé « nano » comme éditeur, il faut que je regarde en bas pour savoir quoi faire pour enregistrer le fichier. Pour enregistrer le fichier, c’est Ctrl + O, petit chapeau O, ça veut dire Ctrl + O, Ctrl + O. Il lui a donné un nom particulier parce qu’on est en train de l’éditer. Il va vérifier qu’il est correct avant de l’enregistrer. « Ctrl + X », je quitte. Et voilà. Ce qui se passe, c’est que cette fois, j’ai complété la configuration avec une personnalisation. Mais attention ! Pour le moment, si je fais le « cat », celui-là, le « sshd service », si jamais je fais un « cat sshd service », il l’a immédiatement pris en compte. Je peux avoir dans certains cas à demander à systemd de recharger sa configuration. Pour ça, ça va être avec « systemctl daemon-reload ». Pour recharger la configuration de l’élément, il retourne la voir sur le disque. Mais là on le voit, il l’avait fait tout seul. Qu’est-ce que je peux constater en regardant ça ? C’est quand même intéressant. Il me montre ici le fichier d’origine et il me montre le fichier de personnalisation. Et on voit que cette directive-là, elle est présente ici, elle est présente ici. Evidemment celle qui va être prise en compte, c’est le « override » puisqu’il est lu après et donc il va surcharger les directives qui sont dans le fichier précédent. Donc ça nous permet vraiment de pouvoir personnaliser l’ensemble des services du système comme on le souhaite. Si je souhaite enlever la personnalisation, il suffira que j’efface ce fichier-là.

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 !