Next: Liste des signaux courants.
Up: Processus et variables d'environnement.
Previous: Création de processus en
Table des matières
10.5 Tuer un processus avec kill.
Envoyer des signaux.
Pour terminer un processus, utilisez la commande kill:
[NdT: pour déterminer le PID, il faut utiliser la commande top
(voir la section 10.8).]
Cette commande kill envoie en réalité un
signal de terminaison au processus <PID>.
L'envoi d'un signal veut simplement dire que le processus doit exécuter
une des 30 fonctions prédéfinies.
Onze d'entre elles -les plus communes- sont décrites dans la section
10.6. Dans certains cas, les développeurs ne se sont pas préoccupés de
définir une fonction (appelée catching)
pour un numéro de signal particulier. Dans ce cas, le noyau utilise
le comportement par défaut pour ce signal. Le comportement par défaut
est usuellement d'ignorer le signal, d'arrêter le processus ou de
le terminer. Le comportement par défaut pour la terminaison d'un signal
est de faire disparaître le processus.
Pour envoyer un signal spécial à un processus, vous pouvez citer le
nom du signal en argument à la ligne de commande ou utiliser son équivalent
numérique:
ou bien:
qui est le signal que kill envoie normalement
quand aucun signal particulier n'est déclaré en option.
[NdT: Pour suspendre un processus, il est possible d'utiliser kill
-19 <PID>, et pour le relancer kill -18
<PID>.]
Pour terminer un processus de manière inconditionnelle:
ou
qui ne devrait être utilisé qu'en dernier recours. Il
est interdit aux processus de traiter le signal SIGKILL.
Etant donné qu'il est ennuyeux de devoir rechercher régulièrement
le PID d'un processus, les utilitaires GNU présentent une commande,
killall, qui envoie un signal à tous les
processus de même nom:
killall -<signal> <nom_de_processus> |
Cette commande est utile quand vous êtes sûr qu'il n'y a qu'un seul
processus en cours, soit parce que personne d'autre n'est connecté,
soit que vous n'agissez pas comme super-utilisateur. Notez
que sur d'autres systèmes UNIX,
la commande killall tue
tous les processus que vous êtes autorisés
à tuer. Si vous agissez comme super-utilisateur, cette action plantera
la machine.
Next: Liste des signaux courants.
Up: Processus et variables d'environnement.
Previous: Création de processus en
Table des matières
1-01-2006