6. Gestion de processus b)La commande top 6.2. Signaux b)La commande kill 6.3. Modes d’exécution b)Exécution conditionnelle c)Exécution détachée ou en arrière plan d)Les indirections e)Tube de communication ...Suite du coursLes applications réseaux...
***************************************
6. Gestion de processus
6.1. Visualisation
Ex : ps
Visualise les processus associés à un terminal en fournissant le PID (Process Identity) et le nom du processus.
ps aux
Visualise tous les processus présents sur la machine en fournissant le PID, le nom du processus, le nom du propriétaire, le temps d’exécution, l’état du processus ...
Visualise de manière dynamique les processus présents sur la machine ainsi que le taux de charge du processeur et le taux d’occupation de la mémoire.
Il est possible d’envoyer des signaux à un processus afin d’en modifier l’exécution.
- a) Les principaux signaux
HUP signal 1
Le signal Hang Up peut être interprété par certains processus comme un signal de fin d’exécution ou comme un signal indiquant que le processus doit relire son fichier de configuration.
TERM signal 15
Le signal Terminate indique à un processus qu’il doit s’arrêter.
KILL signal 9
Le signal Kill indique au système qu’il doit arrêter un processus qui ne répond plus.
kill -1 234 ou kill -HUP 234
Envoie du signal HUP au processus dont le PID est 234. Hormis l’administrateur, seul le propriétaire d’un processus peut lui envoyer un signal.
- a) Exécution séquentielle Caractère ;
cp public/f* perso {{;}} rm -r public
Copie de tous les fichiers du répertoire public commençant par la lettre f dans le répertoire perso puis suppression récursive du répertoire public.
- b) Exécution conditionnelle Caractères &&
cp public/f* perso {{&&}} rm -r public
Copie de tous les fichiers du répertoire public commençant par la lettre f dans le répertoire perso puis, si la commande précédente n’a pas échouée, suppression récursive du répertoire public.
- c) Exécution détachée ou en arrière plan Caractère &
L’exécution en avant plan d’un processus à partir de l’interpréteur de commandes met en oeuvre les étapes suivantes :
Exécution de la primitive fork qui duplique le processus père (ici le shell)
Exécution de la primitive wait qui endort le processus père (état sleep)
Exécution de la primitive exec qui exécute le processus fils
A la fin de l’exécution du processus fils un signal de réveil est envoyé au processus père.
Il en résulte que pendant l’exécution du processus fils le processus père est inactif.
L’exécution en arrière plan d’un processus permet d’exécuter indépendamment le processus père et le processus fils.
xclock {{&}}
Exécution de la commande xclock en arrière plan à partir de l’interpréteur de commande. Dans ce cas le processus xclock s’exécute concurremment avec son processus père.
Un processus est associé à une entrée standard (par défaut le clavier), à une sortie standard et à une sortie des erreurs (par défaut la fenêtre d’exécution).
Indirection des entrées <
cat {{<}}f1
Visualise le contenu du fichier f1. cat f1 produit le même résultat.
Indirection des sorties >
cat f1 {{>}}f2
Le contenu du fichier f1 est redirigé vers le fichier f2 en écrasant son contenu préalable s’il existait déjà.
Indirection des sorties >>
cat f1 {{>>}}f2
Le contenu du fichier f1 est redirigé vers le fichier f2 en l’ajoutant à son contenu préalable s’il existait déjà.
- e) Tube de communication Caractère |
L’utilisation d’un tube de communication entre deux processus permet de définir l’entrée standard du deuxième processus comme étant la sortie standard du premier processus.
ps aux >f1;grep dupl f1;rm f1
Les informations de l’ensemble des processus présents sur la machine sont redirigées dans un fichier f1, puis on recherche dans le fichier f1 avec la commande grep l’ensemble des lignes qui contiennent la chaîne dupl, enfin on supprime le fichier f1. L’objectif est donc de visualiser l’ensemble des processus qui appartiennent à l’utilisateur dupl.
L’utilisation d’un tube de communication évite l’utilisation du fichier temporaire f1.
ps aux {{|}} grep dupl
Rien ne nous empêche d’enchaîner plusieurs tubes les uns à la suite des autres. Ouvrons un terminal et tapons la « commande » :
$ xclock &
Le processus xclock se lance en détaché.
Tapons maintenant la commande :
ps auxw|grep xclock|grep -v grep|cut -c10-16|xargs kill
L’application xclock est « tuée ». On peut décomposer cette « commande » :
ps auxw : on liste les processus ;
grep xclock : on extrait la ligne qui contient la chaîne de caractères « xclock » ;
grep -v grep : on retire la ligne qui contient la chaîne de caractères « grep » ;
cut -c10-16 : on extrait de la ligne les caractères 10 à 16, ce qui correspond au numéro de processus ;
xargs kill : la commande xargs permet ici de faire passer le résultat de la commande précédente comme argument de la commande kill.
Bien sûr, on aurait pu parvenir au même résultat en tapant simplement :
killall xclock
Mais la commande killall ne fait pas partie des commandes traditionnelles d’Unix...
...Suite du coursPrésentation des principaux logiciels disponibles...
Retour Haut de Page
|