Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       kill - Envoyer un signal à un processus

SYNOPSIS

       #include <sys/types.h>
       #include <signal.h>

       int kill(pid_t pid, int sig);

   Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :

       kill() : _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE

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 dont l'identifiant est indiqué par 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  dont
       l'identifiant est -pid.

       Si  sig  vaut  0,  aucun signal n'est envoyé mais les conditions d'erreur sont vérifiées ; ceci peut être
       utilisé pour vérifier l'existence d'un identifiant  de  processus  ou  d'un  identifiant  de  groupes  de
       processus.

       Pour  qu'un  processus  puisse  envoyer un signal, il doit avoir les privilèges nécessaires (sous Linux :
       avoir la capacité CAP_KILL), ou l'UID effectif ou réel du processus qui envoie le signal doit  être  égal
       au  Set-UID  sauvé ou réel du processus cible. Dans le cas du signal SIGCONT, il suffit que les processus
       envoyant et recevant le signal appartiennent à la  même  session.  (Historiquement,  les  règles  étaient
       différentes. Consultez les NOTES.)

VALEUR RENVOYÉE

       En  cas  de  réussite  (au  moins un signal a été envoyé) 0 est renvoyé, en cas d'échec -1 est renvoyé et
       errno contient le code d'erreur.

ERREURS

       EINVAL Un signal invalide a été spécifié.

       EPERM  Le processus appelant n'a pas l'autorisation d'envoyer un signal aux processus cibles.

       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(2).

CONFORMITÉ

       SVr4, BSD 4.3, POSIX.1-2001.

NOTES

       On ne peut envoyer au processus numéro 1 (init) que des signaux pour lesquels il a expressément  installé
       un gestionnaire. Ceci évite que le système soit arrêté accidentellement.

       POSIX.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.

       POSIX.1-2001  réclame  que  si un processus s'envoie un signal à lui‐même, que ce thread ne bloque pas le
       signal et qu'aucun autre thread ne l'a non bloqué ou et en attente dans un sigwait(3), au moins un signal
       non bloqué doit être délivré au thread courant avant que l'appel à kill() ne revienne.

   Notes sur Linux
       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  noyaux
       1.0  à 1.2.2, un signal pouvait être envoyé si l'UID effectif du processus émetteur correspondait à celui
       du processus cible, ou si l'UID réel du processus émetteur correspondait à celui du processus cible. Dans
       les  noyaux  1.2.3  à  1.3.77,  un  signal  pouvait  être  envoyé si l'UID effectif du processus émetteur
       correspondait à l'UID effectif ou réel du processus cible. Les règles actuelles, conformes à POSIX.1-2001
       ont été adoptées dans le noyau 1.3.78.

BOGUES

       Dans les noyaux 2.6 jusqu'à 2.6.7 inclus, en raison d'un bogue, lorsqu'un signal était envoyé à un groupe
       de processus, kill() échouait avec l'erreur EPERM si l'appelant n'avait pas la  permission  d'envoyer  le
       signal  à tous les membres du groupe. En dépit de ce code d'erreur, le signal était cependant bien envoyé
       à tous les processus pour lesquels l'appelant en avait la permission.

VOIR AUSSI

       _exit(2),  killpg(2),  signal(2),  tkill(2),  exit(3),  sigqueue(3),   capabilities(7),   credentials(7),
       signal(7)

COLOPHON

       Cette page fait partie de la publication 3.57 du projet man-pages Linux. Une description du projet et des
       instructions    pour    signaler    des    anomalies    peuvent     être     trouvées     à     l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe      Blaess      <http://www.blaess.fr/christophe/>      (1996-2003),       Alain       Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de  traduction de
       Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org>  ou  par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».