Linux |
CentOS 4.8 |
|
kill(2) |
kill − Envoyer un signal à un processus. |
#include <signal.h> int kill(pid_t pid, int sig); |
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. |
En cas de réussite 0 est renvoyé, en cas d’échec −1 est renvoyé et errno contient le code d’erreur. |
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. |
On ne peut pas envoyer de signal au processus numéro un (init), qui ne dispose pas de routine de gestion de signaux. 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. |
SVr4, AT&T, POSIX.1, X/OPEN, BSD 4.3 |
_exit(2), exit(2), signal(2), signal(7). |
Christophe Blaess, 1997. |
kill(2) |