Atelier
Gestion des processus sous Linux
Un processus représente à la fois un programme en cours d’exécution et tout son
environnement d’exécution (mémoire, état, identification, propriétaire, père...).
La commande ps permet de lister les processus du système.
1. Lister des processus :
La commande ps, sans paramètres, n’affiche que les processus en cours lancés par
l’utilisateur et depuis la console actuelle.
$ ps
PID TTY TIME CMD
8265 pts/1 00:00:00 bash
8904 pts/1 00:00:00 kpdf
8939 pts/1 00:00:00 ps
● Pour avoir plus d’informations, utilisez le paramètre -f.
$ ps -f
UID PID PPID C STIME TTY TIME CMD
zied 8265 7496 0 13:58 pts/1 00:00:00 bash
zied 8904 8265 0 14:07 pts/1 00:00:00 kpdf
zied 9335 8265 0 14:37 pts/1 00:00:00 ps -f
○ Utiliser le paramètre
Publicité
-e pour avoir des informations sur tous les processus du
système.
2. Arrêt d’un processus / signaux
La commande kill sert à envoyer un signal à un processus. Le signal est l’un des
moyens de communication entre les processus. Lorsqu’on envoie un signal à un
processus, celui-ci doit l’intercepter et réagir en fonction de celui-ci. Certains
signaux peuvent être ignorés, d’autres non.
ziedbouziri.com
1
Utiliser la commande kill -l pour avoir la liste des signaux.
● Lancer l'application gedit en avant plan, puis envoyer le signal TSTP avec ctrl z
$ gedit
gedit running...
^Z
[1]+ Stopped gedit
$
● Utiliser la commande bg afin de lancer l'application gedit en avant plan
$ bg
[1]+ gedit &
3. Modifier la priorité d'un processus : nice et renice
Publicité
nice fonctionne avec plusieurs niveaux : les niveaux positifs (de 1 à 19) rendent
progressivement un processus moins prioritaire, les niveaux négatifs (de -1 à -20) le
rendent au contraire plus avide de ressources — mais seul le super-utilisateur est autorisé
à utiliser ces niveaux négatifs.
Si l’on s’aperçoit qu’une tâche déjà lancée aurait dû l’être avec nice, on peut chnager la
priorité d’un processus déjà existant avec la commande renice.
● Lancer le programme xterm avec le 'nice number' '+5'
$ nice -5 xterm&
$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 14589 7496 0 80 0 - 1432 - pts/3 00:00:00 bash
0 S 1000 14641 14589 0 85 5 - 2631 ? pts/3 00:00:00 xterm
0 R 1000 14660 14589 0 80 0 - 872 - pts/3 00:00:00 ps
● Seul root peut lancer des processus avec des niveaux de priorité négatifs
ziedbouziri.com
2
nice --10 tail -f /var/log/messages &
[1] 14772
ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
Publicité
4 S 0 14705 14589 0 80 0 - 953 - pts/3 00:00:00 su
0 S 0 14709 14705 0 80 0 - 1059 - pts/3 00:00:00 bash
4 D 0 14772 14709 10 70 -10 - 936 - pts/3 00:00:00 tail
4 R 0 14779 14709 0 80 0 - 872 - pts/3 00:00:00 ps
● Modifier la priorité du processus de la commande tail
renice -5 14772
14772: old priority -10, new priority -5
● Modifier la priorité des processus en cours d'exécution de l'utilisateur zied
renice -5 -u zied
1000: old priority 0, new priority -5
4. Surveillance de l’activité En temps réel :
top est une commande interactif qui affiche la liste des processus en cours d’exécution.
Par défaut, son critère de tri est l’utilisation actuelle du processeur (touche P) mais on
peut opter pour la mémoire occupée (touche M), le temps processeur consommé (touche
T) ou le numéro de processus ou PID (touche N). La touche k (kill) permet d’indiquer un
numéro de processus à tuer. r (renice) permet de changer la priorité d’un processus.
ziedbouziri.com
3