KILL(2)

NOM
kill - Envoyer un signal a un processus.

SYNOPSIS
#include <signal.h>

int kill(pid_t pid, int sig);

DESCRIPTION
kill() peut etre utilise pour envoyer n'importe quel signal a n'importe quel processus ou groupe de processus.

Si pid est positif, le signal sig est envoye au processus pid. Dans ce cas kill renvoie 0 s'il reussit, ou une valeur negative s'il echoue.

Si pid vaut -1, alors le signal sig est envoye a tous les processus sauf le premier (init) dans l'ordre decroissant des numeros dans la table des processus (par ex: shutdown envoie le signal SIGTERM a tous les processus). Dans ce cas, kill renvoie 0 s'il reussit, ou la derniere condition d'erreur renvoyee par send_sig() s'il echoue.

Si pid est inferieur a -1, alors le signal sig est envoye a tous les processus du groupe -pid. Dans ce cas, le nombre de processus auxquels le signal a ete envoye est renvoye, ou une valeur negative en cas d'echec.

VALEUR RENVOYEE
En cas de reussite 0 est renvoye (sauf si pid inferieur a -1), en cas d'echec une valeur negative est retournee et errno contient le code d'erreur.

ERREURS

EINVAL
    Numero de signal invalide.

ESRCH
    Le processus ou le groupe de processus n'existe pas. Remarquez qu'un processus existant peut etre un zombie, c'est a dire qu'il s'est deja termine mais que son pere n'a pas encore lu sa valeur de retour avec wait().

EPERM
    Le processus appelant n'a pas l'autorisation d'envoyer un signal a l'un des processus concernes. Pour qu'un processus ait le droit d'envoyer un signal a un autre processus pid il doit avoir des privileges de Super-Utilisateur, ou avoir un UID reel ou effectif egal a l'ID reel ou sauvegarde du processus receveur.

BUGS
On ne peut pas envoyer de signal au processus numero un (init), qui ne dispose pas de routine de gestion de signaux. Ceci evite que le systeme soit arrete accidentellement.

CONFORMITE
SVr4, AT&T, POSIX.1, X/OPEN, BSD 4.3

VOIR AUSSI
_exit(2), exit(2), signal(2), signal(7)