Linux : L'architecture système

Utiliser pstree pour voir les processus

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Utilisez la commande pstree pour voir une arborescence des processus exécutés sur votre machine Linux.
08:21

Transcription

Me voici donc dans un shell, une interface. Je suis connecté à mon serveur Linux. Et donc, je suis ici dans ce qu'on appelle un shell. C'est une application spécifique qui attend que je saisisse des commandes. Donc, vous connaissez le shell, sans doute. Mon but, ici, c'est de voir plus en profondeur ce qu'on a dit déjà sur le noyau, ou, en tout cas, sur le fonctionnement de Linux, à travers juste quelques affichages, quelques illustrations. Donc, évidemment, mon shell, il est en user mode. C'est un programme qui a été lancé. Et comment est-ce que je vois ce programme ? Vous connaissez sans doute la commande ps qui permet de voir les process. " Ps " pour process. Et donc, j'ai un process, ici, qui s'appelle bash. Et j'ai un process qui s'appelle ps. Ça tombe bien. Le bash, c'est l'interpéteur de commandes. Ce qui est en train d'attendre ici, de tourner pour attendre ma commande. Et puis, ps, c'est la commande que j'étais en train d'exécuter. Donc, ça, c'est une vision très, très simple. On peut voir un peu plus en détails avec ps et on verra, mais il y a quelque chose d'intéressant qui s'appelle pstree qui va nous permettre de voir l'arbre des processus. Donc, le noyau a commencé à tourner un processus lorsqu'on a démarré la machine. Et ce processus a commencé à exécuter d'autres processus. C'est une initialisation du système, si vous voulez. Et cette initialisation du système, et bien, parfois, vous la verrez avec init, mais parfois, vous la verrez avec systemd, ici. Donc, le d vient très, très souvent dans les applications Vous le voyez ici. Vous le voyez ici. Parce que c'est ce qu'on appelle un daemon. Un daemon, ou démon, c'est simplement un process qui s'exécute en arrière-plan, qui n'est lancé par personne, mais qui est lancé par l'init du système. C'est ce qu'on pourrait appeler, finalement, un service, si vous voulez. Et par exemple, je vois ici que j'ai S S H D. Et bien, c'est le daemon qui me permet de me connecter à mon serveur en SSH, et qui va faire la connexion et puis qui va lancer le bash. Ce qui est le cas ici. Et le bash a lancé un pstree. Vous voyez, la commande que j'ai lancée. Donc, ça, c'est moi, en fait, ici. Et on voit avec pstree, comme son nom l'indique, c'est un arbre. Et bien, on voit l'arbre des processus. Tout ça. Et le premier processus qui a été lancé s'appelle systemd. C'est donc un programme d'init. Lorsque j'ai démarré cette machine, c'est systemd qui a commencé à s'exécuter, et ensuite, selon une configuration, il a commencé à lancer d'autres programmes pour faire fonctionner le système Linux. Peut-être avez-vous noté dans cet affichage que on a un arbre, et puis, on a certaines zones qui sont entre crochets. Et d'ailleurs, ici aussi, entre accolades. Ça, c'est juste dû à l'affichage spécifique de pstree pour gagner un petit peu de place. parce que les process... Bon, alors, c'est simple. Systemd... démarre. Ensuite, il va lancer un processus comme cron, par exemple. Donc, lui-même, appelle un autre processus. Il en est le parent. Et il le lance. Il le démarre. Les processus eux-mêmes, je vous l'avais dit, peuvent avoir également des threads. Donc, un processus peut gérer plusieurs threads. Lorsqu'un processus lance un autre processus, il peut le faire de deux manières. Soit il peut faire l'exécution d'un processus, appeler un autre processus, soit il peut faire un fork de lui-même. C'est-à-dire une copie de processus qui va être gérée de façon assez optimale dans Linux en faisant une copie comme un snapshot, si vous voulez, sans entrer dans les détails. Et un process peut faire un fork, avoir une copie de lui-même ou bien lancer un autre processus. Alors, qu'est-ce qu'on voit ici ? Quand on a des accolades, ça veut dire que l'affichage a été simplifié par pstree et que il y a plusieurs threads. Donc, si vous voyez ces accolades, ça veut dire que ce processus a des threads enfants. Si vous voyez, ici, des crochets, et bien, vous aurez toujours un numéro avant. Comme ici... Comme ici. Simplement parce que ces crochets représentent une simplification également de l'affichage, il y a plusieurs process qui ont le même nom. Et donc pstree les a simplifiés. pour dire, et bien, ici, de toute façon, on a cinq fois la même chose, donc ça sert à rien que je te les affiche comme ça en dessous. Comprends bien ici qu'il y a cinq fois snapd. Chaque processus a un numéro. Ici, on ne les voit pas dans pstree. Si vous utilisez ps, et ben, vous les avez vus, ici. C'est ce qu'on appelle un PID, un process ID. Donc, chaque process a un numéro. Ce qu'on va utiliser souvent, par exemple, pour manipuler le process comme le tree par exemple. Pour lui donner un signal aussi, pour lui dire : " Arrête-toi. " Mais on peut voir, bien entendu, avec pstree le numéro, et... C'est simple... L'option, c'est p pour PID. Et donc, vous avez maintenant, entre parenthèses, ensuite les numéros. Vous voyez que l'init, le systemd, a le numéro de process 1. Ben, c'est lui qui a commencé. Et puis, ensuite, ben, y a eu des numérotations de process. Donc, ça, ça peut être pratique pour faire un affichage de pstree. Vous voyez, par exemple, que mon bash, ici, c'est le 2410. C'est moi. C'est ce qu'on avait vu d'ailleurs ici. C'est bien le bash tel qu'il est en train de s'exécuter pour interpréter mes commandes. Avec pstree, vous pouvez aussi afficher des informations pour un utilisateur. Ben, moi, par exemple. Et ici, je ne vois que... les branches qui sont les miennes. Vous voyez qu'il n'y a pas de racine parce que la racine, systemd, elle appartient à root. Donc, root, c'est l'utilisateur... le super user du système. Et donc, je ne vois pas ces process, mais c'est root qui a lancé SSHD. Et ensuite, vous voyez qu'on commence à SSHD 2409. Donc, il y a deux démons SSH avant moi. Et puis, celui-ci, c'est celui qui a été lancé. C'est un processus qui a été lancé pour supporter ma connexion, et le bash, et pstree. Ça, c'est à moi. Mais ce qu'il y avant, c'est à root. Il faudrait que je fasse un affichage de root pour voir... ce qui lui appartient. Et ce qui lui appartient, en fait, il est parent de mes process. Donc, je les vois également ici. Et puis, enfin... je peux utiliser... Je vais enlever le p. ...une option qui s'appelle h simplement pour faire un highlight. Et c'est assez pratique parce qu'on va pouvoir avoir visuellement l'arborescence de ce qui est en train de se passer. C'est-à-dire, j'ai lancé pstree avec h et on m'a affiché, en jaune, toute la chaîne de process qui aboutit à pstree. Donc, ça commence par systemd qui a lancé SSHD qui en a lancé un autre, etc, jusqu'à aboutir au process qui a démarré. Et bien sûr, là, ça met en évidence mon propre process, mais je peux aussi envoyer à pstree un PID. Donc, par exemple, je vois que sd-resolve est 1478. Et je vois que c'est sd-resolve. Je vais ajouter quand même l'option s pour show parent. Et donc, on va me dire : voilà d'où ça vient. Et en fait, on ne surligne pas le process que j'ai demandé. On ne surligne que le process en cours. Donc... Je ne vais pas utiliser h, mais je vais utiliser h PID. Un h majuscule... ... où il faut que je note... ... le numéro du PID. Voilà. C'est plutôt comme ça. Pour pouvoir afficher... spécifiquement un highlight sur un PID en particulier. Donc, voilà. C'est assez sympa comme affichage. On n'a pas tous les détails, bien entendu. Tous les détails, c'est l'utilisation de la commande ps pour process qui est beaucoup plus complexe à manipuler. Donc, si vous voulez avoir une vision rapide, parfois, pstree est beaucoup plus sympathique à utiliser.

Linux : L'architecture système

Prenez en main les principes généraux de l’architecture système de Linux. Comprenez le fonctionnement du noyau (kernel), de la gestion de la mémoire, des processus, etc.

2h01 (20 vidéos)
Aucun commentaire n´est disponible actuellement
Logiciel :
Thématiques :
IT
Systèmes d'exploitation
Spécial abonnés
Date de parution :15 sept. 2016

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 !