FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Processus et tâches sous Linux : Guide complet pour débutants et admins sys

Le terme processus est souvent méconnu des non-initiés en informatique. Pourtant, il est central dans les discussions sur la programmation et l'administration système sous Linux. Linux utilise aussi le terme tâche (job en anglais) pour un concept proche, avec des nuances importantes. Maîtriser leur gestion est essentiel en environnement multitâche.

Qu'est-ce qu'un processus ?

Au niveau fondamental, un processus correspond à un programme en exécution : une application graphique comme un navigateur web, ou une simple commande en ligne comme ls. Tout ce qui se déroule sur votre système repose sur des processus.

Une application peut en lancer plusieurs pour des tâches simultanées, comme dans cet exemple de pipeline :

$ grep "error" log.txt | wc -l

Cela crée deux processus distincts, un par segment du pipe.

Comment les processus démarrent-ils ?

Les processus sont créés soit par l'utilisateur, soit automatiquement par le système. Dès le démarrage, des centaines tournent déjà, souvent initiés par init (ou systemd sur les systèmes modernes), le premier processus responsable de tous les autres.

Comment les processus se terminent-ils ?

Les commandes courtes comme ls s'exécutent et s'arrêtent en fractions de seconde. D'autres, comme les démons (ex. : cron), tournent en continu pour des tâches périodiques.

Identifier un processus

Chaque processus reçoit un PID (identifiant unique, souvent 1 à 5 chiffres). Les PID réutilisés sont gérés par le noyau. Le répertoire /proc stocke les infos détaillées.

Qu'est-ce qu'une tâche ?

Une tâche est un programme géré par le shell, souvent un ou plusieurs processus. Elle facilite le contrôle des commandes en terminal.

Gérer les tâches

Pour une tâche au premier plan : Ctrl+C l'interrompt (^C).

$ sleep 100
^C
$

Ctrl+Z la suspend (^Z) :

$ sleep 100
^Z
[1]+ Arrêté sleep 100
$

Reprendre au premier plan : fg %1.

$ fg %1
sleep 100

En arrière-plan : bg %1.

$ bg %1
[1]+ sleep 100 &
$

Lancer directement en arrière-plan : ajoutez &.

$ sleep 100 &
[1] 61087
$

Outils pour surveiller processus et tâches

Surveillance des processus

top offre une vue interactive en temps réel :

Processus et tâches sous Linux : Guide complet pour débutants et admins sys

En-tête : charge CPU/mémoire. Tableau : PID, CPU, etc. Mise à jour toutes les 3s. Consultez man top :

Processus et tâches sous Linux : Guide complet pour débutants et admins sys

Instantané des processus actifs

ps liste les processus (par défaut : ceux du terminal actuel).

$ ps
PID TTY TIME CMD
35564 ttys000 0:00.00 sleep 100
73998 ttys000 0:00.43 -bash

Options utiles : ps -ef.

$ ps -ef
UID PID PPID C STIME TTY HEURE CMD
root 1 0 0 2020 ? 00:11:22 /sbin/init
root 2 0 0 2020 ? 00:00:00 [kthreadd]
...

Voir man ps :

Processus et tâches sous Linux : Guide complet pour débutants et admins sys

Lister les tâches en arrière-plan

jobs :

$ du -sh ~/* >/tmp/du.txt 2>/dev/null &
[1] 61167
$ jobs
[1]+ Running du -sh ~/* >/tmp/du.txt 2>/dev/null &

Fin : notification automatique.

Terminer les processus

kill envoie des signaux : SIGINT (^C), SIGTSTP (^Z), SIGTERM (arrêt propre), SIGKILL (force).

$ jobs
[1]+ Running sleep 100 &
$ kill %1
[1]+ Terminated: 15 sleep 100

En savoir plus : Méthodes pour éliminer les programmes qui ne répondent pas sous Linux

Travailler avec processus et tâches sous Linux

Processus et tâches sont clés pour l'administration Linux. Les tâches simplifient le multitâche via le shell, tandis que les processus forment le cœur de tout programme.

[]