Provided by: manpages-fr-dev_4.13-4_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 (consulter feature_test_macros(7)) :

       kill(): _POSIX_C_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  0,  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 pour lesquels le  processus  appelant
       est autorisé à envoyer des signaux, 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  des  vérifications  d’existence  et  de  permissions  sont
       réalisées.  Cela  peut  être  utilisé  pour  vérifier  l'existence  d'un identifiant de processus ou d'un
       identifiant de groupe de processus auquel l'appelant a le droit d'envoyer un signal.

       Pour qu'un processus puisse envoyer un signal, il doit avoir les  privilèges  nécessaires  (sous  Linux :
       avoir  la  capacité  CAP_KILL dans l'espace de noms utilisateur du processus cible), ou l'UID effectif ou
       réel du processus qui envoie le signal doit être égal au Set-UID sauvegardé 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 non valable a été spécifié.

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

       ESRCH  Le processus ou le groupe de processus cible n'existe pas. Remarquez qu'un processus existant peut
              être un zombie, c'est-à-dire qu'il s'est terminé mais n'a pas encore été mis en wait(2).

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

NOTES

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

       POSIX.1  réclame  que  kill(-1,sig)  envoie  sig à tous les processus auxquels l'appelant peut envoyer un
       signal, 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 réclame que si un processus s'envoie un signal à lui-même, et si le thread à l'origine de l'envoi
       n'a  pas les signaux bloqués, et si aucun autre thread ne le débloque ou ne l'attende dans un sigwait(3),
       au moins un signal non bloqué doit être délivré au thread à l'origine de  l'envoi  avant  que  l'appel  à
       kill() ne soit renvoyé.

   Notes pour Linux
       Au  fil  des  différentes versions du noyau, Linux a renforcé les règles de droits nécessaires pour qu'un
       processus non privilégié envoie un signal à 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, ont été adoptées dans  le
       noyau 1.3.78.

BOGUES

       Dans  les  noyaux 2.6  jusqu'au 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 à quelques (plutôt qu’à 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

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

COLOPHON

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

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>,  François  Micaux,  Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,      Thomas      Huriaux      <thomas.huriaux@gmail.com>,     Nicolas     François
       <nicolas.francois@centraliens.net>,    Florentin    Duneau    <fduneau@gmail.com>,     Simon     Paillard
       <simon.paillard@resel.enst-bretagne.fr>,     Denis    Barbier    <barbier@debian.org>,    David    Prévot
       <david@tilapin.org>,    Cédric    Boutillier     <cedric.boutillier@gmail.com>,     Frédéric     Hantrais
       <fhantrais@gmail.com> et Jean-Philippe MENGUAL <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

Linux                                            10 octobre 2019                                         KILL(2)