Vous êtes sur la page 1sur 12

TSSR

Table des matières


Introduction ...................................................................................................................................................... 2
Un processus................................................................................................................................................. 2
Un processus démon..................................................................................................................................... 2
Processus en avant plan (foreground) ........................................................................................................... 3
Processus en arrière-plan (background) ........................................................................................................ 3
La communication interprocessus : les tubes (pipes) ........................................................................................ 4
Envoyer un signal à un processus ...................................................................................................................... 4
Les commandes ................................................................................................................................................ 5
ps (lister les processus du système)................................................................................................................... 5
pgrep (Rechercher un processus par son nom) .............................................................................................. 6
kill (Envoyer des signaux à un processus) .......................................................................................................... 6
jobs (afficher la liste des tâches en cours) ......................................................................................................... 7
fg (Relancer l’exécution d’un processus suspendu en avant plan) .................................................................... 7
bg (Relancer l’exécution d’un processus suspendu en arrière plan) .................................................................. 8
top (Gestionnaire De Taches) ............................................................................................................................ 8
Gestion des démons ........................................................................................................................................11
systemctl (Gestion Des Processus Démon) ......................................................................................................11
Démarrer un démon : ...................................................................................................................................11
Arrêter un démon :.......................................................................................................................................11
Redémarrer un démon qui est déjà lancé : .................................................................................................. 12
Recharger les fichiers de configuration ....................................................................................................... 12
Pour vérifier le statut d’un démon (démarré, arrêté) ................................................................................... 12
Pour voir si un démon est actuellement démarré ........................................................................................ 12

Activité 1 – Assister les utilisateurs en centre de service


Page 1 sur 12
TSSR

INTRODUCTION

Lorsqu'on observe un écran, il apparaît clairement que l'ordinateur mène plusieurs activités en parallèle : une
horloge, par exemple, affiche l'heure pendant qu'on utilise un traitement de texte. Mieux encore on apprécie
de pouvoir imprimer un document tout en continuant à écrire un autre texte. Ces activités sont gérées, en
apparence, simultanément alors que la machine ne dispose que d'un processeur unique. Les processus
échangent des informations entre eux, par exemple un traitement de texte déclenche régulièrement une copie
sur le disque dur permettant de sauvegarder le texte écrit par l’utilisateur.

Bien mais un processus c’est quoi ?

Un processus est un programme en cours d’exécution sur un système. Un processus est un programme qui
s'exécute et qui possède en plus l’ensemble des ressources qui lui sont associées. La différence entre un
processus et un programme est mince : le processus possède le programme mais également l'état courant de
celui-ci dans la mémoire de l'ordinateur. Le programme est en fin de compte l’ensemble des fichiers qui,
lorsqu’ils sont exécutés, deviennent le processus.

Un processus démon (daemons en anglais) est un processus qui s’exécute en permanence et en arrière-
plan sur le système ; son code boucle à l’infini afin d’attendre et d’être prêt lorsqu’un utilisateur ou un autre
processus sollicite le service auquel il est attaché. Les noms des démons finissent généralement par un d ; on
trouvera par exemple les démons crond (planification de tâches), httpd (serveur web Apache) et cupsd
(impression) sur un système Linux.

Linux crée et maintient un certain nombre d'informations sur les processus en cours d'utilisation dans
l'ordinateur. Dans une table gérée par le processus maitre nommé init, on y retrouve toujours les informations
suivantes :
 un identifiant unique (le PID) ;
 une affiliation entre processus ; (processus pères le PPID).
 le niveau de priorité du processus ;
 l'état du processus (en exécution, suspendu, prêt, etc…) ;
 les ressources utilisées par le processus.

Tout processus a donc obligatoirement un père, sauf le premier processus du système : init pour les
distributions s’initialisant toujours suivant la méthode SysV, ou systemd sur la plupart des distributions
récentes. L’un ou l’autre est donc l’ancêtre de tous les processus du système et son PID est toujours égal à 1.

Le PID affecté à un processus est donné par le noyau Linux au lancement du programme. Il n’existe pas de
moyen de prédire ce numéro.

Activité 1 – Assister les utilisateurs en centre de service


Page 2 sur 12
TSSR

Un processus possède un cycle de vie allant de sa naissance à sa mort passant par diverses phases
d’activités et d’attentes. La figure ci-contre illustre le cycle de vie d’un processus.

Sur Linux, on peut distinguer deux types de processus :

Processus en avant plan (foreground)

Lorsqu’on lance une commande, le Shell doit attendre jusqu’à la fin de l’exécution de la commande
avant l’exécution d’une deuxième commande, pour retrouver le prompt de nouveau. On appelle ce
processus, un processus en avant plan.

Processus en arrière-plan (background)

Lorsqu’on lance une commande en arrière-plan, le Shell n’attend plus la fin de son exécution. On dit
qu’il lance la commande en arrière-plan. Lorsqu’un utilisateur lance un processus en arrière-plan, le
Shell affiche entre crochets le numéro de tâche (job) et le PID du processus. Le premier processus
lancé aura un numéro de tâche = 1, le suivant 2 etc...

Activité 1 – Assister les utilisateurs en centre de service


Page 3 sur 12
TSSR

LA COMMUNICATION INTERPROCESSUS : LES TUBES (PIPES)

Le principe des tubes est assez simple : la sortie standard d’un processus est redirigée vers l’entrée d’un tube
dont la sortie est dirigée vers l’entrée standard d’un autre processus. Ainsi les deux processus peuvent échanger
des données sans passer par un fichier intermédiaire.

ENVOYER UN SIGNAL A UN PROCESSUS

Pour contrôler et interagir avec les processus, Linux permet de leur envoyer un signal. Un signal est une forme
de communication inter processus utilisée par les systèmes permettant d’envoyer une notification asynchrone
à un processus pour lui signaler l'apparition d'un événement. Lorsqu’un processus reçoit un signal, plusieurs
comportements sont possibles.
 termine l’exécution du processus.
 suspend l’exécution du processus, mais le garde en mémoire. Le processus père (typiquement, un
shell) est prévenu de ce fait, et peut choisir de terminer le processus, ou de le redémarrer en tâche de
fond, en lui envoyant d’autres signaux.
 Le signal provoque l’exécution d’une fonction qui lui a été associée dans le programme.
 reprend l’exécution normale du programme.

Sans le savoir, vous avez certainement déjà utilisé les signaux, en effet, la combinaison de touche [CTRL]+[Z]
au clavier ne fait qu'envoyer à un processus un signal d'interruption. Il y a plusieurs types de signaux, indiquant
chacun une condition particulière. En voici quelques-uns, avec le comportement par défaut associé :

• SIGTERM : demande « poliment » au processus de s'arrêter


• SIGKILL : tue le processus (utile lorsque SIGTERM échoue)
• SIGTSTP : suspend le processus (CTRL+Z)
• SIGCONT : relance un processus suspendu.
• SIGINT : Interruption au clavier (CTRL+C)
• SIGHUP : Hang-up (fin de connexion)
• SIGFPE : Erreur arithmétique (division par zéro)

Activité 1 – Assister les utilisateurs en centre de service


Page 4 sur 12
TSSR

LES COMMANDES
ps (lister les processus du système)

La commande ps permet de voir la liste des processus du système : elle donne une image simplifiée des
structures du noyau qui gèrent les processus. Elle extrait toutes ses informations du pseudo système de fichiers
/proc dans lequel le noyau place toutes les informations concernant l’état du système en cours d’utilisation.

Par défaut, cette commande affiche uniquement les processus lancés par l’utilisateur à partir du terminal.

Voici une syntaxe fréquemment utilisée :

ps -aux

La commande ci-dessus affiche les processus de tous les utilisateurs (a) et ceux qui ne sont pas attachés à un
terminal (x), tout en spécifiant le nom de l’utilisateur et la date de lancement (u).

Détail des informations affichées


Les principales colonnes rencontrées dans l’affichage de la commande ps sont :

 %CPU : Pourcentage de temps processeur utilisé depuis le lancement de la commande.


 %MEM : Pourcentage d’utilisation de la mémoire disponible.
 COMMAND ou CMD : Nom de la commande à l’origine du processus.
 GID ou GROUP : Identité du groupe sous laquelle s’exécute le processus.
 NI ou NICE : Niveau de priorité du processus.
 PID : Identifiant du processus.
 PPID : Identifiant du processus père.
 VSZ : taille de la mémoire virtuelle du processus (en Kio).
 RSS : Quantité de mémoire vive utilisée (en Ko).
 START ou STIME : Date de lancement du processus.
 STAT : État du processus.
 TIME : Temps total d’utilisation du CPU pour ce processus.
 TT ou TTY : Le nom du terminal auquel est rattaché le processus. Dans le cas d’un processus non
associé à un terminal comme un démon, ce champ contient le caractère "?".
 UID ou USER : Identité de l’utilisateur sous laquelle s’exécute le processus.

Détaille sur la colonne STAT

Activité 1 – Assister les utilisateurs en centre de service


Page 5 sur 12
TSSR

Les états définis par le champ STAT présentent un à trois caractères. Sous Linux, les valeurs signifient :
 R (Running) : Processus en cours d’exécution.
 T (sTopped) : Processus stoppé (avec les touches [Ctrl]+[z] par exemple).
 I : inactif
 S (Sleeping) : Processus endormi, en attente d'un événement.
 + : Processus au premier plan.
 < : haute priorité (non poli pour les autres utilisateurs) ;
 N : basse priorité (poli pour les autres utilisateurs) ;
 L : avec ses pages verrouillées en mémoire.
 D (Device) : Processus endormi en attente d’une ressource (généralement une entrée/sortie).
Les processus dans cet état ne peuvent pas être interrompus.
 Z (Zombie) : Processus terminé. Il restera dans cet état jusqu’à ce que son père en prenne
conscience et récupère son code de retour. Si comme les précédents (D), ces processus ne
peuvent pas être interrompus, ils ne consomment aucune ressource, excepté une entrée dans la
table des processus.

Manipulation des processus

pgrep (Rechercher un processus par son nom)


La commande pgrep permet de rechercher un processus par son nom :

Syntaxe :
pgrep -l <string>
(string à remplacer par le nom du processus)

kill (Envoyer des signaux à un processus)


Les commandes kill permet d’envoyer des signaux à des processus.

Syntaxe de La commande kill :


kill <action> <PID>

Exemples

Tuer un processus désigné par son PID (récupéré avec la commande ps)
kill -KILL <PID>
(PID représente le PID du processus à tuer)

Arrêter un processus désigné par son PID (récupéré avec la commande ps)
kill -TERM <PID>
(PID représente le PID du processus à arrêter)

Suspendre un processus désigné par son PID (récupéré avec la commande ps)
kill -STOP <PID>
Activité 1 – Assister les utilisateurs en centre de service
Page 6 sur 12
TSSR

(PID représente le PID du processus à suspendre)

Relancer un processus suspendu désigné par son PID (récupéré avec la commande ps)
kill -CONT <PID>
(PID représente le PID du processus à relancer)

jobs (afficher la liste des tâches en cours)


La commande jobs permet d’afficher la liste des tâches du Shell courant, Elle affiche les informations
suivantes :

• Le numéro de la tâche (job) ;


• L’état du processus ;
• Le nom du processus.

Le nom du processus

L’état du processus

Le numéro du job

PS : Les numéros de job sont propres au shell courant, alors que les PIDs sont valables pour tous les
environnements. Le symbole plus (+) permet de savoir quelle est la tâche prioritaire et celle qui est la
suivante (-) celle qui sera traitée tous de suite après.

l’option -l de la commande jobs permet d’afficher en plus le PID du processus.

PID du processus

La commande jobs est associée à deux autres commandes bg et fg. Ces deux commandes vous permettent de
déplacer une tâche vers le premier plan ou l’arrière-plan.

fg (Relancer l’exécution d’un processus suspendu EN AVANT PLAN)


Relancer l’exécution d’un processus suspendu en le déplaçant en avant plan.

Syntaxe de La commande fg:


fg %n
(n désigne le numéro de tâche).
Activité 1 – Assister les utilisateurs en centre de service
Page 7 sur 12
TSSR

bg (Relancer l’exécution d’un processus suspendu EN ARRIERE PLAN)


Relancer l’exécution d’un processus suspendu en le déplaçant en arrière-plan.

Syntaxe de La commande fg:


bg %n
(n désigne le numéro de tâche).

top (Gestionnaire De Taches)

Comme un terminal équivalent au gestionnaire de tâches dans Windows, la commande top affiche une liste
des processus qui sont en cours d’exécution et la quantité de CPU utilisée par chacun d’eux.

La commande top permet donc de visualiser l’activité processeur en temps réel. Elle affiche la liste des
processus s’exécutant actuellement et la rafraîchit automatiquement. De plus, cet outil reprend les mêmes
libellés de colonne que ps. Il est d’ailleurs possible de modifier les colonnes présentées ainsi que le tri des
processus de façon interactive.

 Une pression sur la touche [?] affiche l’aide de la commande.


 La touche [q] permet de quitter top.
 La touche [k] permet de tuer un processus.
 La touche [f] (field) permet de sélectionner les champs à afficher à l’aide d’un menu.

Détail sur l’en-tête affiché par la commande TOP :

Activité 1 – Assister les utilisateurs en centre de service


Page 8 sur 12
TSSR

1 2
3

1. Uptime: À gauche l’heure de la machine, puis le réel “uptime”, temps réel d’activité de la machine. Il est
de tradition pour un administrateur linux de vouloir atteindre la plus haute valeur, l’année devenant
souvent l’unité de base ;-)

2. Load Average: Charge moyenne du CPU. Les trois nombres représentent respectivement la charge
processeur de la dernière minute, des 5 dernières minutes et du quart d’heure. Une valeur de 1 indique
que la somme des processus utilisant du cpu atteignent 100% d’utilisation d’un CPU. Ainsi, pour un
quad-core, le seuil « inquiétant » est de 4, où, comme lors d’un embouteillage, les processus demandent
plus de puissance qu’il y en a de disponible. À noter que dans certains cas de blocage hardware (disque
notamment), cette valeur peut être très haute sans grosse activité cpu.

3. Activité CPU: L’activité en détail des CPUs. Voici les éléments les plus importants:
a. us: Charge processeur demandée par des processus utilisateurs.
b. sy: Tout temps CPU passé par les instructions bas niveau, niveau kernel.
c. ni: Charge demandée par des processus utilisateurs “nicés”.
d. id: Pourcentage de ressources processeur libres (tâches inactives)
e. wa: Charge de processus dédiée à une tâche système ou utilisateur, mais actuellement en
attente de ressource I/O réseau ou disque.

4. Activité Mémoire: Il s’agit d’un équivalent de ce que renvoie la commande free, c’est à dire le contenu
de /proc/meminfo. Il s’agit là de la mémoire vive totale, utilisée (y compris en cache et en buffer), et la
libre. La valeur « avail mem » est la quantité de mémoire qui peut être allouée aux processus sans
provoquer plus d’échange. Le noyau Linux essaie également de réduire les temps d’accès au disque de
différentes manières. Il maintient un « cache disque » dans la RAM, où les régions fréquemment
utilisées du disque sont stockées. La mémoire totale consommée par eux est la valeur du « buff / cache
».

1 2 3 4 5 6

Activité 1 – Assister les utilisateurs en centre de service


Page 9 sur 12
TSSR

1. PID: Identifiant du processus. Il vous sera demandé pour la plupart des opérations en mode
interactif (voir partie suivante).

2. Ni: Valeur de Nice. Il s’agit de la priorité d’un processus sur le temps processeur (CPU Time). La
priorité la plus élevée correspond à un niveau de -20, tandis que la plus basse correspond à +19.
Le niveau de priorité par défaut d'un processus est celui de son processus parent, et vaut
généralement zéro (0).

3. Ressources: Ici, la colonne RES est la plus importante et définit la mémoire résidente utilisée
par l’application. Elle est l’équivalente de %MEM. VIRT et SHR définissent l’espace mémoire
partagé disponible à l’usage de l’application. Cela inclut les librairies partagées entre plusieurs
programmes (exemple: libc) et donc ne représentent absolument pas la mémoire réelle utilisée
par l’application.

4. Charge CPU/MEM: Partage de la durée d’utilisation utilisée par le processus pour le CPU et pour
la mémoire vive. Par défaut, top fait un tri sur la colonne %CPU, ce qui permet de voir facilement
les processus trop gourmants.
5. Temps processeur: En anglais CPU Time, il affiche le temps processeur utilisé par le processus
correspondant. Il s’agit du temps (en minutes:secondes) passé par les processeurs sur cette
tâche. Il est normal que cette valeur paraisse plutôt basse, même pour un processus qui tourne
depuis plusieurs jours ou semaines étant donné que la plupart des opérations pour une tâche
sont très rapides, et que le processeur passe du coup pas mal de temps à attendre le I/O.

6. Commande: Le nom du programme correspondant. Appuyez sur « c » pour passer en mode


« commande » ou la ligne de commande utilisée est affichée à la place du nom de programme.

Activité 1 – Assister les utilisateurs en centre de service


Page 10 sur 12
TSSR

GESTION DES DEMONS


Un démon (d'où le d que l'on retrouve parfois à la fin de son nom) est un petit programme qui a pour but
d'assurer une tâche particulière. Un service utilise un ou plusieurs démons :

Par exemple :

 Networking (CLI) ou network-manager (GUI) démons qui gère les interfaces réseau,
 sshd démon qui s’occupe de traiter les connexions sécurisées SSH,
 crond démon qui s'occupe de l'automatisation des tâches répétitives (planificateur de tâches).

Syntaxe de la commande systemctl :


systemctl <action> <nom-du-deamon>.

Par exemple pour démarrer le démon networking, on utilisera la commande :


systemctl start networking

PS : À noter que la plupart des distributions ont conservé la commande service de SysV, pour gérer les
services ; elles redirigent vers la commande systemctl. Il n'est pas garanti que ces alias perdurent dans le
futur, il est donc préférable d’utiliser la commande systemctl.

systemctl (Gestion Des Processus Démon)

Démarrer un démon :
systemctl start <deamon>

Arrêter un démon :
systemctl stop <deamon>

Activité 1 – Assister les utilisateurs en centre de service


Page 11 sur 12
TSSR

Redémarrer un démon qui est déjà lancé :


systemctl restart <deamon>

Recharger les fichiers de configuration d'un démon sans le redémarrer :


systemctl reload <deamon>

Pour vérifier le statut d’un démon (démarré, arrêté)


systemctl status <deamon>

Pour voir si un démon est actuellement démarré


systemctl is-active <deamon>

Anciennes syntaxes :
/etc/init.d/networking status

service networking status

Activité 1 – Assister les utilisateurs en centre de service


Page 12 sur 12

Vous aimerez peut-être aussi