KILL
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
NOTES
HISTORIQUE
CONFORMITÉ
VOIR AUSSI
TRADUCTION
NOM
kill - Envoyer un signal à un processus.
SYNOPSIS
DESCRIPTION
L'appel-système
kill
peut être utilisé pour envoyer n'importe quel signal à n'importe
quel processus ou groupe de processus.
Si pid est positif, le signal sig est envoyé au processus pid.
Si pid vaut zéro, alors le signal sig est envoyé à tous les processus
appartenant au même groupe que le processus appelant.
Si pid vaut -1, alors le signal sig est envoyé à tous les
processus sauf celui de PID 1 (init), mais voir plus bas.
Si pid est inférieur à -1, alors le signal sig
est envoyé à tous les processus du groupe -pid.
Si sig vaut 0, aucun signal n'est envoyé mais les conditions d'erreur
sont vérifiées.
VALEUR RENVOYÉE
En cas de réussite 0 est renvoyé,
en cas d'échec -1 est renvoyé et
errno
contient le code d'erreur.
ERREURS
- EINVAL
-
Numéro de signal invalide.
- ESRCH
-
Le processus ou le groupe de processus n'existe pas.
Remarquez qu'un processus existant peut être un zombie,
c'est à dire qu'il s'est déjà terminé mais que son père n'a pas
encore lu sa valeur de retour avec wait().
- EPERM
-
Le processus appelant n'a pas l'autorisation d'envoyer un
signal à l'un des processus concernés. Pour qu'un processus
ait le droit d'envoyer un signal à un autre processus
pid
il doit avoir des privilèges de Super-Utilisateur,
ou avoir un UID réel ou effectif égal à l'ID réel ou sauvegardé
du processus récepteur. Dans le cas de SIGCONT, il suffit que les
processus émetteur et récepteur appartiennent à la même session.
NOTES
On ne peut envoyer au processus numéro un (init) que des signaux pour
lesquels il a expressément installé un gestionnaire.
Ceci évite que le système soit arrêté accidentellement.
POSIX 1003.1-2001 réclame que kill(-1,sig) envoie sig
à tous les processus accessibles par le processus appelant,
sauf à certains processus système dépendant de l'implémentation.
Linux autorise un processus à s'envoyer un signal à lui-même, mais
l'appel kill(-1,sig) n'envoie pas le signal au processus appelant.
HISTORIQUE
Suivant les différentes versions du noyau, Linux a utilisé différentes règles
pour les permissions nécessaires à un processus non-privilégié pour
envoyer un signal a un autre processus.
Dans les noyaus 1.0 à 1.2.2, un signal pouvait être envoyé si l'UID effectif
de l'émetteur correspondait à celui du récepteur, ou si l'UID réel de
l'émetteur correspondant à celui du récepteur.
Dans les noyaux 1.2.3 à 1.3.77, un signal pouvait être envoyé si l'UID
effectif de l'émetteur correspondait à UID effectif ou réel du récepteur.
Les règles actueles, conformes à POSIX 1003.1-2001 ont été adoptées
dans le noyau 1.3.78.
CONFORMITÉ
SVr4, AT&T, POSIX.1, X/OPEN, BSD 4.3
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|