Gestion des processus sous Linux

Operating Systems · notes

Voir tous les documents en systèmes d'exploitation et cloud

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