Après vous avoir expliquer comment déterminer la charge du système, je vais vous montrer comment lister les processus, vous savez le fameux Ctrl + Alt + Suppr sous Windows.
Donc pour lister les processus sous Linux, il existe 2 commandes : top et ps . Cette liste risque de vous surprendre, en effet, vous reconnaitrez certains programmes, mais vous verrez également beaucoup d’autres, lancés automatiquement par le système, dont vous n’avez sans doute jamais entendu parler.
I – La commande « ps » : Les processus statiques
ps vous permet d’obtenir la liste des processus qui tournent au moment où vous lancez la commande. Cette liste n’est pas rafraîchie en temps réel, contrairement à top qu’on verra dans le chapitre II.
En saisissant ps vous obtiendrez quelques chose du genre :
nom_machine:# ps
PID TTY TIME CMD
8176 pts/0 00:00:00 bash
8191 pts/0 00:00:00 ps
Explication des 4 colonnes:
- PID : c’est le numéro d’identification du processus. Chaque processus a un numéro unique qui permet de l’identifier. Ce numéro nous sera utile plus tard lorsque nous voudrons arrêter le processus.
- TTY : c’est le nom de la console depuis laquelle a été lancé le processus.
- IME : la durée d’exécution du processus. Plus exactement, cela correspond à combien de temps le processus a occupé le processeur depuis son lancement.
- CMD : le programme qui a généré ce processus. Si vous voyez plusieurs fois le même programme, c’est que celui-ci s’est dupliqué en plusieurs processus (c’est le cas de MySQL par exemple).
Il n’y a que 2 processus ? C’est normal, en effet cette commande (sans arguments) n’affiche que les processus exécuté par l’utilisateur actif. Voici d’autres commande pour avoir une liste des processus plus detaillée :
- ps aux : lister tous les processus présents sur la machine en fournissant le PID, le nom du processus, le nom du propriétaire, le temps d’exécution, l’état du processus …
- ps -ef : lister tous les processus (Liste de tous les processus lancés par tous les utilisateurs sur toutes les consoles)
- ps -ejH : afficher les processus en arbre (Cette option permet de regrouper les processus dans une forme arborescente. Plusieurs processus sont des « enfants » d’autres processus, cela vous permet de savoir qui est à l’origine de quel processus.)
- ps -u [Utilisateur] : lister les processus lancés par un utilisateur (Pour filtrer un peu cette longue liste, on peut utiliser -u afin d’obtenir par exemple uniquement les processus que l’on a lancé nous-même.
II – La commande « top » : Les processus dynamique
Comme vous avez du remarquer dans le chapitre I, la liste donnée par ps a un défaut : elle est statique (elle ne bouge pas). Or, votre ordinateur, lui, est en perpétuel mouvement. De nombreux processus apparaissent et disparaissent régulièrement.
Pour obtenir la liste des processus en temps réel tapez top:
top – 16:50:28 up 16:22, 1 user, load average: 0.00, 0.02, 0.00
Tasks: 23 total, 2 running, 21 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.0% us, 0.0% sy, 0.0% ni, 98.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 1048576k total, 333536k used, 715040k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31883 www-data 16 0 48860 30m 3732 S 16 2.9 0:01.98 apache2
1 root 16 0 1904 684 588 S 0 0.1 0:00.00 init
30029 root 16 0 1624 592 488 S 0 0.1 0:00.03 syslogd
30080 root 18 0 1568 388 320 S 0 0.0 0:00.00 klogd
30523 root 16 0 5200 1032 680 S 0 0.1 0:00.00 sshd
32666 root 17 0 2624 1304 1080 S 0 0.1 0:00.00 mysqld_safe
1379 mysql 16 0 143m 26m 5616 S 0 2.6 0:05.54 mysqld
1380 root 15 0 1548 532 464 S 0 0.1 0:00.00 logger
5251 root 16 0 1744 612 520 S 0 0.1 0:00.00 inetd
5267 root 16 0 1976 872 700 S 0 0.1 0:00.00 cron
9383 root 16 0 25352 7484 4192 S 0 0.7 0:00.03 apache2
28186 www-data 15 0 41108 22m 3892 S 0 2.2 0:11.39 apache2
32387 www-data 16 0 41392 23m 4132 S 0 2.3 0:05.64 apache2
32400 www-data 16 0 41392 22m 3824 S 0 2.2 0:04.68 apache2
28238 www-data 16 0 41124 22m 4084 S 0 2.2 0:05.79 apache2
31894 www-data 16 0 41380 22m 3740 S 0 2.2 0:02.30 apache2
8099 root 16 0 7956 2664 2212 R 0 0.3 0:00.03 sshd
Cette commande vous donne 2 informations distinctes :
- En haut: vous retrouvez l’uptime et la charge, mais aussi la quantité de processeur et de mémoire utilisée. (Voir l’article : Depuis combien de temps ma machine est lancée ?)
- En-dessous, vous avez la liste des processus.
Attention, top n’affiche pas tous les processus, en effet, il ne conserve que les premiers pour qu’ils tiennent sur une « page » de la console.
Par défaut, les processus sont triés par taux d’utilisation du processeur (colonne %CPU). Les processus que vous voyez tout en haut de cette liste sont donc ceux qui sont actuellement les plus gourmands en processeur. (Ce sont surement eux que vous devriez cibler en premier si vous sentez que votre système est surchargé.)
Pour en finir avec top (et pour que vous soyez au « top »), je vais vous décrire rapidement la liste des commandes/options existantes :
- q : ferme top.
- h : affiche l’aide, et donc la liste des touches utilisables.
- B : met en gras certains éléments.
- f : ajoute ou supprime des colonnes dans la liste.
- F : change la colonne selon laquelle les processus sont triés. En général, laisser le tri par défaut en fonction de %CPU est suffisant.
- u : filtre en fonction de l’utilisateur que vous voulez.
- k : tue un processus, c’est-à-dire arrête ce processus. Ne vous inquiétez pas, en général les processus ne souffrent pas. On vous demandera le numéro (PID) du processus que vous voulez tuer. Nous reviendrons sur l’arrêt des processus un peu plus loin.
- s : change l’intervalle de temps entre chaque rafraîchissement de la liste (par défaut c’est toutes les 3 secondes).


Yepla,
Juste un petit message pour vous signaler qu’il existe également htop qui dispose d’une interface au moins plus intuitive que top et a mon avis quelques fonctionnalités en plus bien que je ne connaisse probablement pas totalement top…
Merci pour la précision, en effet je ne connaissais pas.
Cependant, il s’agit d’un package externe, puisqu’il n’est pas intégré pas défaut dans n’importe-qu’elle distribution de Linux.
Un petit apt-get install htop suffit.
Et, je confirme l’interface est un peu plus conviviale et explicite.
la commande qui permet de vérifier l’état d’un processus system linux