TP Les processus sous linux
top, htop et btop nice bg fg kill pkill xkill killall
đź•’ : 3 h maximum
Prérequis:
- Cours découverte de Linux au lycée
- Le terminal , la ligne de commande.
- installation du paquet : sudo apt update && sudo apt install mesa-utils pour glxgears
- la commande ps
- les signaux et clavier
- processus
But:
- gestion des fichiers sous linux
- utilisation de vi
- installation d’un paquet ici mesa-utils
- la commande whereis
- la commande file
Répertoire du travail:
~/Works/PS
1 – DĂ©couverte de mesa-utils
mettre à jour votre machine avant de commencer ce TP , cette opération peut prendre du temps, profitez en pour commencer la rédaction de votre TP
sudo apt update && sudo apt upgrade -y
Dans un terminal (bash shell), dans le répertoire Works et PS nous allons travailler
etudiant@ordi:~/Works/PS$ glxgears
La commande « glxgears » n'a pas été trouvée, mais peut être installée avec :
sudo apt install mesa-utils
etudiant@ordi:~/Works/PS$
le le message est clair non ?
En fait le programme glxgears n’est pas encore installĂ© sur votre machine
1-1 Installation des outils mesa-utils
etudiant@ordi:~/Works/PS$ sudo apt update && sudo apt install mesa-utils
ici on installe le paquet mesa-utils
sudo pour avoir temporairement les droits de root , apt update , pour la mise à jour des bases de données des paquets ubuntu, puis && , ce qui veut dire si la première opération se passe bien on fait la suite, ici avec les droits root , apt install mesa-utils
on peut vérifier ! que ça fonctionne :
On tape la commande glxgears
Et la fenĂŞtre graphique va s’ouvrir avec une animation d’engrenage .
1-2 glxgears et whereis (ou est)
glxgears est un code exécutable de programme
etudiant@ordi:~/Works/PS$ whereis glxgears
glxgears: /usr/bin/glxgears /usr/share/man/man1/glxgears.1.gz
whereis nous dit que le code du programme est dans /usr/bin/glxgears et l’autre est le manuel
etudiant@ordi:~/Works/PS$ ls -l /usr/bin/glxgears
lrwxrwxrwx 1 root root 25 avril 14 2022 /usr/bin/glxgears -> glxgears.x86_64-linux-gnu
etudiant@ordi:~/Works/PS$
glxgears est un lien symbolique qui pointe sur glxgears.x86_64-linux-gnu
1-3 file , la fonction qui vous dit ce qu’est le fichier !
bruno@bruno-Latitude-E7450:~/Works/PS$ file /usr/bin/glxgears
/usr/bin/glxgears: symbolic link to glxgears.x86_64-linux-gnu
bruno@bruno-Latitude-E7450:~/Works/PS$ file /usr/bin/glxgears.x86_64-linux-gnu
/usr/bin/glxgears.x86_64-linux-gnu: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=427bacba53b1ac71c965d2db2fc98dd7f411d7d3, for GNU/Linux 3.2.0, stripped
la fonction file permet de savoir ce que contient un fichier.
2- Le processus
Quand on lance , en exécutant glxgears , le programme démarre on voit bien que ça tourne 🙂
on perd la main !
dans le terminal , taper la commande glxgears et entrée
etudiant@ordi:~/Works/PS$ glxgears
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
307 frames in 5.0 seconds = 61.330 FPS
301 frames in 5.0 seconds = 60.048 FPS
301 frames in 5.0 seconds = 60.048 FPS
....
et en fait ici le processus est attaché à la fenêtre (parent) glxgears est son enfant
2-1 tuer le processus enfant
dans la suite on va découvrir comment arrêter un processus, Il faut tester les différentes façon de faire :
2-1-1 Méthode de la croix de la fenêtre
Dans la fenĂŞtre ou on a lancĂ© le processus enfant . Le processus dispose d’une croix en haut a gauche ,si on clique dessus on ferme le processus enfant!
2-1-2 Méthode ctrl c (^c)
Dans la fenĂŞtre ou on a lancĂ© le processus enfant , il suffit de d’appuyer sur la touche ctrl (a gauche) et c ( ^c)
2-1-3 Fermer la fenĂŞtre parent
Si on ferme avec la croix le terminal qui à lancé le processus enfant on ferme les 2 , le processus enfant meurt en même temps que son parent.
2-1-4 Lancer la tâche (processus) sans bloquer le parent
etudiant@ordi:~/Works/PS$ glxgears &
[1] 10188
etudiant@ordi:~/Works/PS$ Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
307 frames in 5.0 seconds = 61.397 FPS
etudiant@ordi:~/Works/PS$ 301 frames in 5.0 seconds = 60.049 FPS
etudiant@ordi:~/Works/PS$ 301 frames in 5.0 seconds = 60.049 FPS
on ajoute le & (et commercial) Ă la fin de la commande
et on appuie sur la touche EntrĂ©e … on et retrouve la main au rythme que glxgears affiche ses informations…
mais on a bien la main .. malgré le processus enfant qui communique
2-1-5 Lancer la tâche en renvoyant l’affichage « à la poubelle »
etudiant@ordi:~/Works/PS$ glxgears > /dev/null &
[1] 10325
etudiant@ordi:~/Works/PS$
Et l on a bien complètement la main ! ici le processus enfant a le numéro 10325 (PID) , vous avez très certainement un autre nombre.
L’affichage est envoyĂ© dans un fichier /dev/null (ca disparait null )
2-1-6 La commande ps (process)
etudiant@ordi:~/Works/PS$ ps
PID TTY TIME CMD
8282 pts/1 00:00:00 bash
10325 pts/1 00:00:07 glxgears
10590 pts/1 00:00:00 ps
etudiant@ordi:~/Works/PS$
le PID 8282 c’est le programme , interprĂ©teur bash
puis derrière , notre glxgears PID 10325
et au passage on voit notre commande ps (un processus oui oui !) PID 10590
2-1-7 la commande kill
donc on a notre glxgears qui tourne bien sur notre écran! comme en 2-1-5
on peut jeter un œil sur les signaux
kill -9 10325 # attention Ă bien mettre le bon PID!
2-1-8 la commande pkill
etudiant@ordi:~/Works/PS$ glxgears > /dev/null &
[3] 14057
[2] Complété glxgears > /dev/null
etudiant@ordi:~/Works/PS$ ps
PID TTY TIME CMD
13106 pts/1 00:00:00 bash
14057 pts/1 00:00:00 glxgears
14059 pts/1 00:00:00 ps
etudiant@ordi:~/Works/PS$ pkill glxgears
etudiant@ordi:~/Works/PS$
2-1-9 la commande xkill
attention cette commande ferme l’application que vous allez cliquer ! il faut maĂ®triser , a vos risques et pĂ©rils ! mais il n’y a pas de danger ! sauvegarde avant !
etudiant@ordi:~/Works/PS$ glxgears > /dev/null &
[5] 14144
[4] Termine 1 glxgears > /dev/null
etudiant@ordi:~/Works/PS$ xkill

3- Surveiller les processus
3-1 La commande top

on voit ici qu’il y a 2 glxgears sur cette copie d’Ă©cran
vous lancer comme en 2-1-5
et lancer top ! relever le PID votre glxgears
Et depuis un autre terminal , lancer la commande ps ! et « killer » le glxgears
commenter expliquer !
3-2 la commande htop
plus sympa que top !
sudo apt update && sudo apt install htop

tree et étudiant ou autre !
3-3 la commande btop
installer btop
sudo apt update && sudo apt install btop

il est tellement geek !!
4- nice , régler les priorités des taches
nice -0 est la priorité maximum et -19 minimum
on va lancer 3 glxgears avec des priorités différentes .
etudiant@ordi:~/Works/PS$ sudo nice -n -10 glxgears > /dev/null &
[12] 14267
etudiant@ordi:~/Works/PS$ nice -n 10 glxgears > /dev/null &
[13] 14269
etudiant@ordi:~/Works/PS$ nice -n 19 glxgears > /dev/null &
[14] 14271
etudiant@ordi:~/Works/PS$
Que constatez vous!
on va charger la machine avec cette commande
etudiant@ordi:~/Works/PS$ yes > /dev/null &
ça va envoyer des y dans le fichier puit sans fond 🙂 /dev/null, ca va charger la machine !
surveiller avec un autre terminal avec btop ou htop ou top !
etudiant@ordi:~/Works/PS$ yes > /dev/null &
[15] 14368
etudiant@ordi:~/Works/PS$ yes > /dev/null &
[16] 14369
etudiant@ordi:~/Works/PS$ yes > /dev/null &
[17] 14370
etudiant@ordi:~/Works/PS$ yes > /dev/null &
[18] 14371
etudiant@ordi:~/Works/PS$ yes > /dev/null &
[19] 14372
etudiant@ordi:~/Works/PS$
Quand vous en avez assez !
killall yes
killall glxgears

