Obtenir des informations sur les processus : ps et pstree

Ces deux commandes affichent une liste des processus existants sur le système, selon les critères que vous voulez.

ps

Lancer cette commande sans argument montrera uniquement les processus dont vous êtes l'initiateur et qui sont rattachés au Terminal que vous utilisez :

$ ps
  PID TTY          TIME CMD
 5162 ttya1    00:00:00 zsh
 7452 ttya1    00:00:00 ps

Les options sont nombreuses, nous ne citerons que les plus courantes :

  • a : affiche aussi les processus lancés par les autres utilisateurs ;

  • x : affiche aussi les processus n'ayant pas de terminal de contrôle (c'est le cas de pratiquement tous les serveurs) ou un terminal de contrôle différent de celui que vous êtes en train d'utiliser ;

  • u : affiche pour chaque processus le nom de l'utilisateur qui l'a lancé et l'heure de son lancement.

Il existe beaucoup d'autres options. Reportez-vous à la page de manuel ps(1) pour plus de renseignements.

La sortie de cette commande est divisée en champs : celui qui vous intéressera le plus est le champ PID, qui contient l'identificateur du processus. Le champ CMD contient, quant à lui, le nom de la commande exécutée. Une façon très courante d'invoquer ps est la suivante :

$ ps ax | less

Vous obtenez ainsi une liste de tous les processus en cours d'exécution. Ceci permet de repérer le ou les processus problématiques avant de les éliminer.

pstree

La commande pstree affiche les processus sous forme d'arborescence et permet de les visualiser par leurs liens de parenté. Ainsi, pour tuer une série de processus de la même famille, il suffira d'en découvrir l'ancêtre commun. Vous aurez avantage à utiliser l'option -p, qui affiche le PID de chaque processus, ainsi que l'option -u, laquelle donne le nom de l'utilisateur ayant lancé le processus. L'arborescence étant généralement longue, il est plus facile d'invoquer pstree de cette façon :

$ pstree -up | less

pour en avoir une vue d'ensemble.