Linux part 9 – Les processus

Un processus est un programme en cours d’exécution. Par exemple, chaque fois que l’on lance la commande ls, un processus est créé durant l’exécution de la commande. Chaque processus correspond à un programme qui s’exécute parallèle aux autres.

Un processus est identifié par un numéro unique que l’on appelle le PID (Process IDentifiant).

Quand un processus est créer par un autre processus, on dit qu’il y a une relation père-fils entre les processus.

Un processus dispose d’un processus père que l’on appelle le PPID (Parent PID).

Le processus ancêtre de tous les autres est (init) qui est lancé par le noyau lors du boot. Le processus init a comme particularité d’être le premier processus et son PID est toujours 1

pid

PID       Identifiant du processus
PPID     Identifiant du père du processus
PGID     Identifiant d’un groupe de processus
UID       Le compte user sous lequel le processus s’exécute
GIDs     Le ou les comptes groupe sous lesquels le processus s’exécute
TTY       Le terminal auquel le processus est associé
NICE     Valeur modifiable qui intervient dans le calcul de la priorité
CMD     Les arguments, en premier le nom de l’exécutable

Les processus et la mémoire:
– Chaque processus consomme de la mémoire, un processus actif est associé à un espace mémoire virtuel.

La charge système:
– Linux fonctionne en temps partagé. Il fractionne le temps des processeurs pour pouvoir s’occuper à tour de rôle de chaque processus.

Communication inter-processus:
– Un processus peut envoyer un signal à un autre processus.
– Il existe 63 signaux, numéroté de 1 à 63.
– Un processus peut traiter un signal reçu, soit en l’ignorant soit en déclenchant une action préprogrammée
– La réception d’un signal non géré entraine la mort du processus.
– Le signal 9 ne peut être géré, il entraine obligatoirement la mort du processus.
– On ne peut envoyer des signaux qu’à ses propres processus, seul root peut envoyer des signaux vers tous les processus.

Les commandes:
ps                 Liste les processus et leur caractéristiques
pstree          Visualise la généalogie des processus
kill                Envoie un signal à un processus ou à un groupe de processus
pkill              Envoie un signal à un processus par son nom
killall            Idem
pgrep            Recherche un processus par son nom
lsof                Liste les fichiers ouvert par un processus
fuser             Liste les processus accédant à un fichier
ldd                 Liste les bibliothèques dynamiques associés à un exécutable
nice,renice   Modifie la priorité
free                Affiche la mémoire vive et la swap total et utilisée
uptime          Affiche la charge système
top                 Les processus les plus consommateur de ressource

# L’application cron est-elle active ? Quel est son PID ?
p.lima@linux:~# ps -a | grep cron

# Affiche l’UID, le PID, le PPID, le STIME (heure de démarrage), le TTY, la commande et argument
p.lima@linux:~# sleep 300 &
p.lima@linux:~# ps -f

# Tuer la tache précédente
p.lima@linux:~# kill -TERM PID

# Affichez les caractéristiques d’un processus depuis son PID
p.lima@linux:~# ps -f -p PID

# Listez les processus appartement à un utilisateur
p.lima@linux:~# ps -u plima

# Affichez l’usage des ressources par les processus
p.lima@linux:~# ps aux | more

# Activer une application avec une valeur NICE de 10
p.lima@linux:~# nice -10 sleep 300 &

# Lister les processus en affichant leur NICE
p.lima@linux:~# ps -l

# Modifier la valeur du NICE
p.lima@linux:~# renice 10 PID

# Les commandes NICE et RENICE peuvent prendre les valeurs entre -20 et +20.
Une valeur positive abaisse la priorité.
Une valeur négative augmente la priorité. (Il faut être root)

# Visualiser les fichiers ouvert par un démon
p.lima@linux:~# lsof | grep démon | more

# Afficher le PID, PGID et CMD d’un démon
p.lima@linux:~# ps -o pid,pgid,cmd -e | grep démon

twitterlinkedin
Publié dans Linux

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*