Processus et Linux
Debian
Nous allons utiliser la distribution Debian de Linux installée sur votre ordinateur Windows.
Chez vous, si vous avez un ordinateur avec une version de windows assez récente, vous pourrez faire de même en suivant ce lien : Lien
I. Se lancer dans Debian⚓︎
Chercher Debian, puis l’exécuter. Choisir un nom d’utilisateur et un mot de passe (simples) et les noter sur votre cahier. Compléter
- Enter new UNIX username :
- New password
Attention
⚠ Quand vous écrivez votre mot de passe, il ne se passe rien dans la console (aussi appelée « terminal »), c’est normal. Le mot de passe vous sera demandé une deuxième fois.
II. La commande top⚓︎
👉 En console : $ top
$ top
La commande top permet d’observer en temps-réel les processus sur votre ordinateur à l’instar du gestionnaire de tâches sur Windows.
Vous allez obtenir quelque chose qui ressemble à ceci :
la commande q
👉 Pour commencer : tester q
, puis lancer à nouveau la commande top
.
La commande q
permet de fermer top
III. D'autres commandes avec top
⚓︎
PID
PID est le « processus identifier » : un identifiant sous forme d’entier donné par le système.
👉 Si cela n'a pas été fait, lancer à nouveau la commande top
.
👉 Notez le PID
de la commande top
puis « tuez » le processus top
.
👉 Pour cela : k
suivi du PID
de la commande top
L’affichage se « fige » et il s’affiche quelque chose qui ressemble à :
Send pid 46 signal [15/sigterm]
.
👉 Appuyer ensuite sur la touche « entrée »
Question
Relancez la commande top
et observez le PID
. A-t-il été modifié ?
Solution
Un autre processus s'est ouvert, avec un autre PID
Question
Essayer de tuer init
.
Solution
Il est impossible de tuer init
.
IV. Commandes à connaître⚓︎
La commande ps
Dans un terminal, la commande ps
va permettre d'afficher la liste des processus actifs dans le terminal courant.
👉 Quitter top
puis saisir ps
. Observez les processus actifs.
👉 Ouvrir une deuxième console avec Debian. Placer les deux consoles côte à côte.
find
La commande find permet de rechercher des fichiers sur le système d’exploitation.
Attention
Attention à bien respecter les espaces donnés.
👉 Se placer sur la console de droite, puis lancer une recherche de tous les scripts Python présents depuis la racine du système de fichiers avec : find / -name "*.py"
Question
Dans la console de gauche, saisir ps
. Voit-on le processus lié à la commande find
?
Solution
On ne voit pas le processus lié à la commande find
car ps
ne permet de voir que les processus actifs dans le terminal courant.
Question
La commande top
permet d'observer les processus en temps réel. Depuis que vous avez lancé
find / -name "*.py"
dans la console de droite, le processus s'est sûrement terminé. (Dans ce cas, vous avez de nouveau l'invite de commande). Recommencez donc l'opération, puis dans la console de gauche, saisir top
. Voit-on le processus lié à la commande find
?
Solution
Dans la console de gauche on voit l’apparition du processus lié à la commande find, son PID, son état, son utilisation du CPU, de la mémoire...
👉 Quitter top
puis saisir ps -ef
La commande ps -ef
La commande ps -ef
va permettre d'afficher la liste de tous les processus actifs à l'instant où on l'écrit. L'affichage n'est pas actualisé en temps réel comme pour top
, il n'y a donc pas besoin de "quitter".
👉 Dans la console de gauche, saisir top
⌛ Comme la recherche demandée va prendre pas mal de temps et que vous avez changé d’avis, tuer le processus « find » en utilisant son PID sur la console de gauche. Si votre processus s'était déjà terminé, vous pouvez en relancer un nouveau, et ensuite le tuer.
Le PID noté avec top
et celui noté avec ps -ef
pour le processus find
sont-ils identiques ?
👉 quitter top.
👉 Nous allons utiliser l’éditeur de texte nano.
👉 Dans la console de droite : nano mon_texte.txt
Vous pouvez taper un petit texte.
👉 Dans la console de gauche : saisir la commande ps -ef
Signification des différents champs
La documentation Linux donne la signification des différents champs :
- UID : identifiant utilisateur effectif ;
- PID : identifiant de processus ;
- PPID : PID du processus parent ;
- C : partie entière du pourcentage d'utilisation du processeur par rapport au temps de vie des processus ;
- STIME : l'heure de lancement du processus ;
- TTY : terminal de contrôle
- TIME : temps d'exécution
- CMD : nom de la commande du processus
Question
Comment sont nommés vos deux terminaux de contrôle ?
Solution
TTY1 et TTY2
La commande kill
La commande kill
permet de fermer un processus, en donnant son PID en argument.
👉 Depuis la console de gauche, tuer (on dit aussi « terminer ») le processus de nano
. Pour cela taper kill
suivi du PID de nano.
👉 En procédant de même, en vous plaçant sur la console de gauche, tuer la console de droite.
Le PPID
Le PPID est le « parent processus identifier » qui donne l’identifiant du parent qui a engendré le processus.
Question
Ouvrir à nouveau une console que vous mettez à droite, et y lancer nano.
Noter le PPID de nano. A quoi correspond-il ?
Solution
Le PPID de nano est le processus parent de nano.
👉 Tester également ps -elf
👉 Tester également top
puis V
👉 Terminer top
, lancer ps -ef
, et remonter les identifiants parents de nano.
Remarque pour -ef
: e signifie every, f signifie full
V. QCM⚓︎
Quelle commande permet de lister les processus ?
- ps
- sh
- proc
- dir
- man
- ls
- ps
Quelle abréviation désigne l'identifiant d'un processus dans un système d'exploitation de type unix ?
- SIG
- PID
- SID
- PPID
- PID
Quelle commande permet d'interrompre un processus dans un système d'exploitation de type unix ?
- stop
- interrupt
- end
- kill
- kill
VI. Réviser Linux⚓︎
🌐 TD à télécharger : Fichier Terminus.pdf
: "Clic droit", puis "Enregistrer la cible du lien sous"
😉 Il sera utile de couper le son du site : clic droit sur l'onglet dans le navigateur, puis sélectionner "couper le son du site"
👉 Le symbole ~ au clavier
- Il se trouve sur la même touche que 2 é ~. Il faut appuyer sur la barre espace pour le faire apparaître.
- En cas de problème : maintenir la touche Alt enfoncée et saisir
126
VII. Réviser les processus en ligne de commande⚓︎
Ouvrir Debian
Attention
Ce travail doit être réalisé sans regarder le IV, sauf en dernière extrémité.
Question 1
Ecrire la commande qui permet de voir les processus en temps réel.
Solution
Lire le II, et III.
Question 2
Quitter ce processus.
Solution
q
Question 3
Ecrire la commande qui permet d'afficher la liste des processus actifs (différente de celle de la question 1)
Solution
ps
Question 4
Ouvrir un deuxième terminal Debian.
Dans le 2ème terminal saisir nano mon_texte.txt
Quel est le processus parent de nano
?
Solution
Dans le premier terminal saisir ps -ef
, puis lire son PPID, et regarder le processus parent.
Question 5
Tuer le processus lié à nano.
Solution
kill
suivi du PID de nano
Question 6
Tuer le processus lié au 2ème terminal.
Solution
kill
suivi du PID de TTY2
VIII. Un exercice type bac⚓︎
Avec une ligne de commande dans un terminal sous Linux, on obtient l'affichage suivant :
La documentation Linux donne la signification des différents champs :
- UID : identifiant utilisateur effectif ;
- PID : identifiant de processus ;
- PPID : PID du processus parent ;
- C : partie entière du pourcentage d'utilisation du processeur par rapport au temps de vie des processus ;
- STIME : l'heure de lancement du processus ;
- TTY : terminal de contrôle
- TIME : temps d'exécution
- CMD : nom de la commande du processus
Exercice
1. Question 1.
Parmi les quatre commandes suivantes, laquelle a permis cet affichage ?
- ls -l
- ps –ef
- cd ..
- chmod 741 processus.txt
Solution
ps -ef
2. Question 2.
Quel est l'identifiant du processus parent à l'origine de tous les processus concernant le navigateur Web (chromium-browser) ?
Solution
L’identifiant du processus parent à l’origine de tous les processus concernant le navigateur Web est 831
3. Question 3.
Quel est l'identifiant du processus dont le temps d'exécution est le plus long ?
Solution
L’identifiant du processus dont le temps d’exécution est le plus long est 6211 (00:01:16)