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