Superviser les processus

La commande ps permet de voir les processus présents sur le serveur et quel est leur état d’exécution mais cet affichage reste cependant figé. Les commandes top et htop permettent quand à elles de manipuler les processus et de les visualiser en temps réel.

Commande ps

La commande ps (Processus Snapshot) permet de voir plusieurs informations sur les processus dont notamment l’utilisateur (USER), l’identifiant du processus (PID) et le statut (STAT).

# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 33896 4208 ? Ss 07:26 0:01 /sbin/init
root 5 0.0 0.0 0 0 ? S< 07:26 0:00 [kworker/0:0H]
root 17 0.0 0.0 0 0 ? S< 07:26 0:00 [kworker/1:0H]
syslog 645 0.0 0.1 255848 4672 ? Ssl 07:26 0:02 rsyslogd
aline 4442 0.0 0.1 27104 5388 pts/11 Ss+ 16:18 0:00 bash
aline 5545 0.1 0.1 29088 7684 pts/0 S+ 18:32 0:00 /usr/bin/python ./scriptZombie
aline 5546 0.0 0.0 0 0 pts/0 Z+ 18:32 0:00 [ls]
aline 7281 0.0 0.0 22676 2440 pts/0 R+ 18:35 0:00 ps aux

Dans l’ordre nous avons :

  • USER : l’utilisateur ayant lancé le processus
  • PID (Process IDentifiant) : l’identifiant unique de processus définit par le système
  • %CPU : le pourcentage d’utilisation du processeur
  • %MEM : le pourcentage de mémoire physique (RAM) utilisée
  • VSZ (Virtual memory SiZe) : la quantité de mémoire virtuelle (swap) utilisée en Kio
  • RSS (Resident Set Size) : la quantité de mémoire physique (RAM) occupée par le processus en Kio
  • TTY (Text TeletYpe) : le terminal qui a lancé le processus. Le “?” indique que la commande n’est pas associée à un terminal
  • STAT : le statut du processus
  • START : l’heure ou la date à laquelle le processus à été lancé
  • TIME : le temps total que le cpu a passé sur ce processus et ces enfants
  • COMMAND : la commande qui a été exécutée pour lancer le processus

Il est aussi possible de voir le PPID avec ps -alex par exemple.

  • PPID : Numéro du processus parent (Parent Process Id entification).

Le statut STAT indique l’état dans lequel un processus se trouve. Parmi les plus courants nous avons l’état :

  • R (En cours d’exécution)
  • S (En sommeil interruptible)
  • D (En sommeil ininterruptible, généralement par des I/O)
  • T (Stoppé)
  • W (Pagination, obsolète depuis la version 2.6 du noyau)
  • X (Mort, ne devrait jamais arriver)
  • Z (Zombie) - Processus terminé mais pas encore pris en compte par son père

Des caractères additionnels apportent plus de précisions sur le statut des processus :

  • < : priorité haute
  • N : priorité basse
  • L : verrouillé en mémoire
  • s : en chef de file
  • l : en multi-thread
  • + : processus d’avant plan

La commande man ps donne plus d’informations sur les champs et option ci-dessus.
Note : La commande ps donne l’état des processus à un instant t, pour visualiser les processus en temps réel on peut utiliser la commande top.

Commande top

La commande top permet d’avoir des informations sur les processus en temps réel et de pouvoir les manipuler. L’avantage de top est de pouvoir paramétrer l’affichage des processus de façon très précise et de pouvoir enregistrer cette configuration pour une utilisation ultérieure.
Par défaut la commande top affiche les processus qui occupent le plus de mémoire (colonne%CPU) et les renseignements suivant :

# Top
top - 10:28:29 up 209 days, 5:24, 7 user, load average: 0,00, 0,01, 0,05
Tasks: 187 total, 1 running, 186 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3,2 us, 3,1 sy, 0,0 ni, 93,7 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem: 4047100 total, 2415048 used, 1632052 free, 309320 buffers
KiB Swap: 3906556 total, 0 used, 3906556 free. 1458228 cached Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1934 aline 20 0 862880 11856 5408 S 2,0 0,3 1:11.12 synergyc
1721 aline 20 0 923608 47288 38832 S 1,3 1,2 6:28.24 synergy
8587 aline 20 0 30448 3984 2956 S 1,3 0,1 0:09.92 htop
4233 aline 20 0 29204 2976 2408 S 0,7 0,1 0:57.41 top
8619 root 20 0 0 0 0 S 0,7 0,0 0:00.56 kworker/1:2
7 root 20 0 0 0 0 S 0,3 0,0 0:22.12 rcu_sched
8318 root 20 0 0 0 0 S 0,3 0,0 0:04.67 kworker/0:0
1 root 20 0 37348 7760 2632 S 0,0 0,2 0:01.53 init

Le Summary display

La partie haute de top (Summary display) affiche les informations générales :

top - 10:28:29 up 209 days,  5:24,  7 user,  load average: 0,00, 0,01, 0,05
Tasks: 187 total, 3 running, 186 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3,2 us, 3,1 sy, 0,0 ni, 93,7 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem: 4047100 total, 2415048 used, 1632052 free, 309320 buffers
KiB Swap: 3906556 total, 0 used, 3906556 free. 1458228 cached Mem

(Ligne 1) Nom de la commande, heure du serveur, uptime, nombre d’utilisateur connecté, charge moyenne (depuis 1min, 5min, 15 min). Il est à noté que ces résultats sont équivalemment à la commande uptime.

(Ligne 2) Nombre de processus total et leur statut (running, sleeping, stopped, zombie)

(Ligne 3) Le pourcentage de temps Cpu utilisé par :

  • us (user) : processus utilisateurs
  • sy (systeme) : processus système (kernel threads)
  • ni (niced) : processus à qui on a changé la priorité
  • id (iddle) : non sollicité
  • wa (wait) : l’attente pour les entrées/sorties
  • hi (hardware interruption) : les interruptions matérielles (irq)
  • si (software interruption) : les interruptions logicielles (isq)
  • st (steal time) : l’hyperviseur

(Ligne 4) Mémoire physique (totale, utilisée, libre, tampons). L’unité en Kio peut être changé avec la touche e

(Ligne 5) Mémoire virtuelle (totale, utilisée, libre, en cache). L’unité en Kio peut être changé avec la touche e

Espace vide

L’espace vide entre la partie 1 et 3 permet de dialoguer avec la commande top, certaines options demanderont de préciser des valeurs.

Affichage des sprocessus

La 3ème partie affiche les processus avec plusieurs champs : PID, USER, PR (priorité), NI (nice), etc., il est possible avec la touche f d’en ajouter d’autre (ou d’en enlever). L’option f permet également de voir à quoi correspond chaque champs.

 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
1934 aline 20 0 862880 11856 5408 S 2,0 0,3 1:11.12 synergyc
1721 aline 20 0 923608 47288 38832 S 1,3 1,2 6:28.24 synergy
8587 aline 20 0 30448 3984 2956 S 1,3 0,1 0:09.92 htop
4233 aline 20 0 29204 2976 2408 S 0,7 0,1 0:57.41 top
8619 root 20 0 0 0 0 S 0,7 0,0 0:00.56 kworker/1:2
7 root 20 0 0 0 0 S 0,3 0,0 0:22.12 rcu_sched
8318 root 20 0 0 0 0 S 0,3 0,0 0:04.67 kworker/0:0
1 root 20 0 37348 7760 2632 S 0,0 0,2 0:01.53 init

Le manuel de top est très complet, en voici quelques extraits. Pour plus de précision vous pouvez afficher l’aide avec -h ou consulter le manuel man top.
Note : La commande top différencie les touches minuscules et majuscules.

Commande générales :

q       : ferme top
h, ? : affiche l'aide
d, s : modifie le temps de rafraîchissement (3s par défaut). Possibilité d'utiliser les millisec : 0,25. (la touche espace permet de rafraîchir à tout moment l'affichage)
n, # : nombre maximum de processus à afficher
W : enregistre les modifications effectuées dans top (couleur, colonne, ...)

Manipulation de la partie haute de top (Summary display)

l       : affiche/enlève les informations serveur et la charge moyenne
t : affiche/enlève les informations cpu
m : affiche/enlève les informations mémoire
E : change l'unité d'affichage pour la mémoire physique et virtuelle, Kio, Mio, Gio, Tio, Pio, Eio
0 : n'affiche pas les valeurs valant zéro (time, %CPU, ...)
1 : affiche les autres cpu s'il existe.
2 : affiche les nœuds (node)
3 : affiche les threads

Affichage de l’information :

f,  F   : rajoute des champs. 
H : affiche les threads
V : Affiche les processus sous forme d'arbre
i : ignore les processus zombies et au repos.
c : affiche le nom de la commande ou la ligne de commande
C : permet de scroller haut/bas (utile pour voir tout les processus) et gauche/droite (pour voir tout les champs)
n, # : nombre maximum de processus à afficher

Traitement des résultats

u, U    : filtre en fonction d'un utilisateur
L, & : recherche une chaîne de caractère ( & : recherche de nouveau cette chaîne)
<,> Sélectionner la colonne qui permettra de trier les processus

Trier en fonction de
M : utilisation mémoire
N : le PID
P : utilisation CPU
T : temps CPU
R : change l’ordre du tris
S : cumule le temps des processus enfants avec le processus parents

Actions sur les processus
k : fait appel à kill. Le prompt vous demandera le PID du processus et numéro de signal (par défaut 15)
r : Change la priorité d'un processus

Effets visuels
Z : permet de choisir les couleurs d'affichage.
z : affiche ou enlève la couleur
x : surligne la colonne avec laquelle l’affichage des processus est trié
y : surligne les processus avec le statut R (running)
B : Met en gras les caractères numériques de la zone de résumé (partie haute de top)
ou en gras et blanc les éléments surlignés par x et y.
b : Met en gras les éléments surlignés (uniquement si 'x' ou 'y' est appliqué)

Commande htop

L’utilisation de htop est un peu différence qu’avec top. La commande htop est cependant plus interactive et visuellement plus agréable.

  1  [                                       0.0%]	       Tasks: 108, 168 thr; 1 running
2 [||||||||||||||| 33.3%] Load average: 0.04 0.04 0.05
Mem[|||||||||||| 565/5846MB] Uptime: 07:10:50
Swp[ 0/7631MB]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
4076 aline 20 0 30356 3904 2900 R 17.8 0.1 0:00.06 htop
1799 aline 20 0 610M 11212 5780 S 8.9 0.2 0:32.84 /usr/bin/synergyc
1 root 20 0 33900 4316 2620 S 0.0 0.1 0:00.66 /sbin/init
323 root 20 0 19480 2076 1812 S 0.0 0.0 0:00.08 upstart-udev-bridge --daemon
328 root 20 0 52132 3952 2960 S 0.0 0.1 0:00.03 /lib/systemd/systemd-udevd --daemon
534 root 20 0 15396 1648 1316 S 0.0 0.0 0:00.02 upstart-socket-bridge --daemon
677 messagebu 20 0 40176 3788 2416 S 0.0 0.1 0:00.12 dbus-daemon --system --fork
773 root 20 0 322M 7480 6328 S 0.0 0.1 0:00.00 /usr/sbin/ModemManager
776 root 20 0 322M 7480 6328 S 0.0 0.1 0:00.00 /usr/sbin/ModemManager
704 root 20 0 322M 7480 6328 S 0.0 0.1 0:00.00 /usr/sbin/ModemManager
714 syslog 20 0 249M 2840 2456 S 0.0 0.0 0:00.02 rsyslogd
715 syslog 20 0 249M 2840 2456 S 0.0 0.0 0:00.00 rsyslogd
716 syslog 20 0 249M 2840 2456 S 0.0 0.0 0:00.00 rsyslogd
712 syslog 20 0 249M 2840 2456 S 0.0 0.0 0:00.04 rsyslogd
726 root 20 0 19300 2572 2348 S 0.0 0.0 0:00.00 /usr/sbin/bluetoothd
745 root 20 0 43456 3316 2944 S 0.0 0.1 0:00.00 /lib/systemd/systemd-logind
765 root 20 0 15412 1864 1540 S 0.0 0.0 0:00.01 upstart-file-bridge --daemon
768 avahi 20 0 32352 2980 2672 S 0.0 0.0 0:00.33 avahi-daemon: running [linux2.local]
769 avahi 20 0 32228 256 0 S 0.0 0.0 0:00.00 avahi-daemon: chroot helper
778 root 20 0 337M 10316 8836 S 0.0 0.2 0:00.00 NetworkManager
780 root 20 0 337M 10316 8836 S 0.0 0.2 0:00.28 NetworkManager
781 root 20 0 337M 10316 8836 S 0.0 0.2 0:00.00 NetworkManager
777 root 20 0 337M 10316 8836 S 0.0 0.2 0:00.53 NetworkManager
F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit

Dans htop on distingue les options de la ligne de commande qui sont des options à spécifier avant de lancer htop des commandes interactives qui peuvent uniquement être lancées une fois que htop a démarré.

Les options de la ligne de commandes :

-d permet de spécifier la période de rafraîchissement (en seconde) :

htop -d 0,25   // toutes les 25 millisecondes

-C : Pour n’avoir qu’une seule couleur (blanc) :

htop -C

-h : Affiche l’aide des options pour la ligne de commande :

htop -h

-p : Affiche uniquement le PID choisi :

htop -p 4242

-s permet de trier en fonction d’une colonne :

htop -s PID

Pour avoir la liste des colonnes disponible :

htop --sort-key help
PID
Command
STATE
[...]

-u : Affiche uniquement les processus d’un utilisateur

htop -u aline

-v : Affiche la version :

htop -v

Les options interractives :

Une fois que le programme htop a été lancé vous voyez ceci :

  1  [                                       0.0%]	       Tasks: 108, 168 thr; 1 running
2 [||||||||||||||| 33.3%] Load average: 0.04 0.04 0.05
Mem[|||||||||||| 565/5846MB] Uptime: 07:10:50
Swp[ 0/7631MB]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
4076 aline 20 0 30356 3904 2900 R 17.8 0.1 0:00.06 htop
1799 aline 20 0 610M 11212 5780 S 8.9 0.2 0:32.84 /usr/bin/synergyc
1 root 20 0 33900 4316 2620 S 0.0 0.1 0:00.66 /sbin/init
323 root 20 0 19480 2076 1812 S 0.0 0.0 0:00.08 upstart-udev-bridge --daemon
328 root 20 0 52132 3952 2960 S 0.0 0.1 0:00.03 /lib/systemd/systemd-udevd --daemon
534 root 20 0 15396 1648 1316 S 0.0 0.0 0:00.02 upstart-socket-bridge --daemon
677 messagebu 20 0 40176 3788 2416 S 0.0 0.1 0:00.12 dbus-daemon --system --fork
773 root 20 0 322M 7480 6328 S 0.0 0.1 0:00.00 /usr/sbin/ModemManager
776 root 20 0 322M 7480 6328 S 0.0 0.1 0:00.00 /usr/sbin/ModemManager
704 root 20 0 322M 7480 6328 S 0.0 0.1 0:00.00 /usr/sbin/ModemManager
714 syslog 20 0 249M 2840 2456 S 0.0 0.0 0:00.02 rsyslogd
715 syslog 20 0 249M 2840 2456 S 0.0 0.0 0:00.00 rsyslogd
716 syslog 20 0 249M 2840 2456 S 0.0 0.0 0:00.00 rsyslogd
712 syslog 20 0 249M 2840 2456 S 0.0 0.0 0:00.04 rsyslogd
726 root 20 0 19300 2572 2348 S 0.0 0.0 0:00.00 /usr/sbin/bluetoothd
745 root 20 0 43456 3316 2944 S 0.0 0.1 0:00.00 /lib/systemd/systemd-logind
765 root 20 0 15412 1864 1540 S 0.0 0.0 0:00.01 upstart-file-bridge --daemon
768 avahi 20 0 32352 2980 2672 S 0.0 0.0 0:00.33 avahi-daemon: running [linux2.local]
769 avahi 20 0 32228 256 0 S 0.0 0.0 0:00.00 avahi-daemon: chroot helper
778 root 20 0 337M 10316 8836 S 0.0 0.2 0:00.00 NetworkManager
780 root 20 0 337M 10316 8836 S 0.0 0.2 0:00.28 NetworkManager
781 root 20 0 337M 10316 8836 S 0.0 0.2 0:00.00 NetworkManager
777 root 20 0 337M 10316 8836 S 0.0 0.2 0:00.53 NetworkManager
F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit

Nous avons 3 parties distinctes, la première affiche les informations générales ::

CPU  		[ priorité_faible normal noyau virtualisé	%utilisation]
Memoire [ utilisée tampon cache utilisée/total]
Sawp [ utilisée utilisé/total]

La 2eme partie affiche les processus :

 PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command          
4076 aline 20 0 30356 3904 2900 R 17.8 0.1 0:00.06 htop
1799 aline 20 0 610M 11212 5780 S 8.9 0.2 0:32.84 /usr/bin/synergyc
1 root 20 0 33900 4316 2620 S 0.0 0.1 0:00.66 /sbin/init

La 3eme les menus interactifs :

F1Help  F2Setup F3SearchF4FilterF5Tree  F6SortByF7Nice -F8Nice +F9Kill  F10Quit 

Il est possible à tout moment utiliser les commandes suivantes :

Commande générales :
F1, ?, h : Affiche l'aide
F10, q : Quitte htop
F2, S : Configuration
Manipulation de la partie haute de htop (information générale)
F2 : Menu Meters (certaines options proposent un menu contextuel en bas de l'écran)
Affichage de l'information :
Flèches ( ↑ ↓ ← → ) : permet de se déplacer haut/bas/droite/gauche dans la liste des processus.
Espace : Permet de mette en surbrillance les processus sélectionnés
U : Désélectionne tous les processus mis en surbrillance
H : Affiche/Enlève les threads utilisateurs
K : Affiche/Enlève les threads noyaux
F5 : Affiche les processus sous forme d'arbre.
+, - : Si F5 est activé, vous permettra de fermer/ouvrir une arborescence.
F2 : Ajoute des colonnes, menu Columns (certaines options proposent un menu contextuel en bas de l'écran)

Traitement des résultats :

0 à 9   : Recherche incrémentale en fonction du PID
F3, / : recherche par nom (F3 pour occurrence suivante)
F4, \ : applique un filtre de recherche
F6, > : Permet de sélectionner une colonne de tris
u : Affiche les processus d'un utilisateur choisi
P : Tris en fonction du %CPU utilisé
M : Tris en fonction d %MEM utilisé
T : Tris en fonction du temps passé paar le CPU sur le processus et ses enfants
I : Inverse l'ordre du tris
i : définis la priorité des entrées/sorties
a : permet de choisir le CPU
l : liste les fichiers ouvert avec la commande lsof
s : liste les appels systèmes avec la commande strace
L : liste les appels des librairies avec la commande ltrace
F : Suit le processus sélectionné.

Actions sur les processus :

F7, ]   : Augmente la priorité du processus sélectionné (que si la commande a été lancé en root)
F8, [ : Baisse la priorité du processus sélectionné
F9, + : fait appel à la commande kill et vous demandera de choisir le signal à envoyer.
f - Effets visuels
F2 – Menu Meters et Colors (certaines options proposent un menu contextuel en bas de l'écran)

Visualiser une arborescence

Avec pstree

La commande pstree permet de voir processus sous forme d’un arbre. Par défaut la racine de pstree commence avec init si rien n’est précisé. (Ne semble pas afficher les trhreads noyau).

# pstree
init─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ ├─dnsmasq
│ └─3*[{NetworkManager}]
├─accounts-daemon───2*[{accounts-daemon}]
├─acpid
├─avahi-daemon───avahi-daemon
├─bluetoothd
├─colord───2*[{colord}]
├─cron

Pour faciliter la lecture pstree fusionne visuellement les branches identiques en les plaçant entre crochets et les préfixant avec le nombre de répétitions.

# pstree
init─┬─6*[getty]
├─java───95*[{java}]
├─mysqld_safe─┬─logger
│ └─mysqld───23*[{mysqld}]
├─named───6*[{named}]
├─rsyslogd───3*[{rsyslogd}]
└─udevd───2*[udevd]

L’option -p sans paramètre permet de visualiser le PID des processus :

# pstree -p
init(1)─┬─acpid(899)
├─bluetoothd(616)
├─cron(934)
├─lightdm(1156)─┬─Xorg(1184)
│ ├─lightdm(1193)─┬─gnome(1361)
[...] [...] [...]

Il est possible de lister une arborescence à partir d’un processus particulier en précisant son PID :

# pstree -p 1612
gnome-panel(1612)─┬─firefox(4766)─┬─{firefox}(4773)
│ ├─{firefox}(4774)
│ ├─{firefox}(4865)
│ └─{firefox}(4898)
├─gnome-terminal(2905)─┬─bash(2916)───pstree(4954)
│ ├─bash(3020)───man(3940)───pager(3950)
│ ├─bash(3178)
│ ├─bash(3285)───ssh(4551)

Il est aussi possible de lister les processus d’un utilisateur.

# pstree aline
init─┬─at-spi-bus-laun─┬─dbus-daemon
│ └─3*[{at-spi-bus-laun}]
├─gnome-session─┬─deja-dup-monito───2*[{deja-dup-monito}]
│ ├─gnome-panel─┬─firefox───41*[{firefox}]
│ │ ├─gnome-terminal─┬─bash───pstree
│ │ │ ├─bash───man───pager
│ │ │ ├─bash
│ │ │ ├─bash───ssh
│ │ │ ├─bash───top
│ │ │ ├─gnome-pty-helpe
│ │ │ └─3*[{gnome-terminal}]
│ │ ├─vlc───8*[{vlc}]
│ │ └─4*[{gnome-panel}]

Avec ps

La commande ps permet également d’afficher les processus sous forme d’un arbre. Contrairement à pstree les threads noyaux sont affichés. Les options sont axjf.

# ps axjf
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 2 0 0 ? -1 S 0 0:00 [kthreadd]
2 3 0 0 ? -1 S 0 0:00 \_ [ksoftirqd/0]
2 4 0 0 ? -1 S 0 0:12 \_ [kworker/0:0]
2 5 0 0 ? -1 S< 0 0:00 \_ [kworker/0:0H]
2 7 0 0 ? -1 S 0 0:14 \_ [rcu_sched]
2 8 0 0 ? -1 S 0 0:00 \_ [rcu_bh]
2 9 0 0 ? -1 S 0 0:07 \_ [rcuos/0]
[...]
1193 1201 1201 1201 ? -1 Ss 1000 0:00 init --user
1358 1624 1358 1358 ? -1 Sl 1000 2:03 \_ lightdm --session-child 12 15
1193 1201 1201 1201 ? -1 Ss 1000 0:00 \_ gnome-session --session=gnome-fallback
1358 1624 1358 1358 ? -1 Sl 1000 3:13 | \_ gnome-panel
1624 3639 1358 1358 ? -1 Rl 1000 0:24 | | \_ gnome-terminal
3639 3650 3650 3650 pts/0 5679 Ss 1000 0:00 | | \_ bash
3650 5679 5679 3650 pts/0 5679 S+ 1000 0:00 | | | \_ /usr/bin/python ./scriptZombie
5679 5680 5679 3650 pts/0 5679 Z+ 1000 0:00 | | | \_ [ls] < defunct >
3639 4442 4442 4442 pts/11 5686 Ss 1000 0:00 | | \_ bash
4442 5686 5686 4442 pts/11 5686 R+ 1000 0:00 | | \_ ps axjf

Avec top

La commande top, comme ps et pstree permet un affichage en arbre. Une fois la commande top lancée il faut appuyer sur la touche V Majuscule.

top - 15:32:19 up 214 days, 10:28,  1 user,  load average: 0,00, 0,01, 0,05
Tasks: 120 total, 1 running, 118 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0,1 us, 0,1 sy, 0,0 ni, 99,8 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem: 8067556 total, 2204256 used, 5863300 free, 293132 buffers
KiB Swap: 2046972 total, 0 used, 2046972 free, 1021248 cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 10648 828 692 S 0,0 0,0 0:13.12 init
4134 bind 20 0 201m 23m 2900 S 0,0 0,3 0:07.64 `- named
4141 root 20 0 49936 1240 628 S 0,0 0,0 0:01.21 `- sshd
19768 root 20 0 79808 4024 3176 S 0,0 0,0 0:02.03 `- sshd
19816 root 20 0 21172 3412 1768 S 0,0 0,0 0:00.07 `- bash
20641 root 20 0 23784 1624 1132 T 0,0 0,0 0:00.00 `- top
20989 root 20 0 24040 1916 1192 R 0,0 0,0 0:19.58 `- top
4213 root 20 0 9340 1496 1200 S 0,0 0,0 0:00.01 `- mysqld_safe
4543 mysql 20 0 421m 48m 7940 S 0,0 0,6 11:29.84 `- mysqld
4544 root 20 0 4088 640 536 S 0,0 0,0 0:00.00 `- logger
4558 root 20 0 294m 9496 2600 S 0,0 0,1 35:42.99 `- fail2ban-server
4832 root 20 0 78752 4380 1884 S 0,0 0,1 0:34.32 `- apache2
3623 www-data 20 0 78768 3116 636 S 0,0 0,0 0:00.13 `- apache2
3697 www-data 20 0 359m 5636 1708 S 0,0 0,1 0:00.64 `- apache2
3698 www-data 20 0 359m 5464 1476 S 0,0 0,1 0:00.63 `- apache2
4937 root 20 0 20896 1072 816 S 0,0 0,0 0:06.08 `- cron

Avec htop

La commande htop, comme top, ps et pstree permet un affichage en arbre. Une fois la commande htop lancée il faut appuyer sur la touche F5.

  1  [                                       0.0%]	       Tasks: 108, 168 thr; 1 running
2 [||||||||||||||| 33.3%] Load average: 0.04 0.04 0.05
Mem[|||||||||||| 565/5846MB] Uptime: 07:10:50
Swp[ 0/7631MB]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
1 root 20 0 33848 4228 2572 S 0.0 0.1 0:01.15 /sbin/init
1917 root 20 0 76864 5944 5068 S 0.0 0.1 0:00.00 ├─ /usr/sbin/cupsd -f
1706 root 20 0 362M 9420 5764 S 0.0 0.2 0:00.05 ├─ /usr/lib/udisks2/udisksd --no-debug
1722 root 20 0 362M 9420 5764 S 0.0 0.2 0:00.00 │ ├─ /usr/lib/udisks2/udisksd --no-debug
1712 root 20 0 362M 9420 5764 S 0.0 0.2 0:00.00 │ ├─ /usr/lib/udisks2/udisksd --no-debug
1711 root 20 0 362M 9420 5764 S 0.0 0.2 0:00.00 │ ├─ /usr/lib/udisks2/udisksd --no-debug
1709 root 20 0 362M 9420 5764 S 0.0 0.2 0:00.00 │ └─ /usr/lib/udisks2/udisksd --no-debug
1600 colord 20 0 294M 8576 7208 S 0.0 0.2 0:00.08 ├─ /usr/lib/colord/colord
[...]
1173 root 20 0 271M 5784 4928 S 0.0 0.1 0:00.18 ├─ lightdm
1211 root 20 0 164M 8364 5424 S 0.0 0.2 0:00.01 │ ├─ lightdm --session-child 12 15
1219 aline 20 0 40376 4112 3196 S 0.0 0.1 0:00.59 │ │ ├─ init --user
1935 aline 20 0 229M 13872 11820 S 0.0 0.3 0:00.64 │ │ │ ├─ /usr/lib/x86_64-linux-gnu
1946 aline 20 0 11436 656 576 S 0.0 0.0 0:00.00 │ │ │ │ ├─ /bin/cat
F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit

Les touches +,- vous permettront de fermer/ouvrir une arborescence.

Afficher les threads noyau

Il est possible de visualiser les threads noyau en utilisant ps bien que la façon dont cette commande les affiche n’est pas déterminé.

# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jun21 ? 00:00:01 /sbin/init
root 2 0 0 Jun21 ? 00:00:00 [kthreadd]
root 3 2 0 Jun21 ? 00:00:40 [ksoftirqd/0]
root 5 2 0 Jun21 ? 00:00:00 [kworker/0:0H]
root 7 2 0 Jun21 ? 00:00:10 [migration/0]
root 8 2 0 Jun21 ? 00:00:00 [rcu_bh]
root 9 2 0 Jun21 ? 00:07:02 [rcu_sched]
root 10 2 0 Jun21 ? 00:00:05 [migration/1]
root 11 2 0 Jun21 ? 00:00:15 [ksoftirqd/1]
[...]

On peut par exemple restreindre la sortie au PID 2 (kthreadd) et à ses enfants :

# ps -f -p 2 --ppid 2
UID PID PPID C STIME TTY TIME CMD
root 2 0 0 08:12 ? 00:00:00 [kthreadd]
root 3 2 0 08:12 ? 00:00:00 [kworker/0:0]
root 4 2 0 08:12 ? 00:00:00 [kworker/0:0H]
root 6 2 0 08:12 ? 00:00:00 [mm_percpu_wq]
root 7 2 0 08:12 ? 00:00:00 [ksoftirqd/0]
root 8 2 0 08:12 ? 00:00:03 [rcu_sched]
root 9 2 0 08:12 ? 00:00:00 [rcu_bh]
root 10 2 0 08:12 ? 00:00:00 [migration/0]
root 11 2 0 08:12 ? 00:00:00 [watchdog/0]
[...]
> Partager <