.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992 .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Modified by Michael Haardt (michael@moria.de) .\" Modified by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" Modified Fri Jul 23 21:51:36 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Sun Jul 25 10:53:24 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Wed Nov 01 18:56:43 1995 by Michael Haardt .\" (michael@cantor.informatik.rwth-aachen.de) .\" Modified Sun Apr 14 17:04:32 1996 by Andries Brouwer (aeb@cwi.nl) .\" [added some polishing contributed by Mike Battersby (mib@deakin.edu.au)] .\" Modified Sun Jul 21 21:25:26 1996 by Andries Brouwer (aeb@cwi.nl) .\" Modified Fri Jan 17 23:49:46 1997 by Andries Brouwer (aeb@cwi.nl) .\" Modified Tue Dec 18 10:53:02 2001 by Andries Brouwer (aeb@cwi.nl) .\" Modified, 24 Jul 2002, Michael Kerrisk .\" Added note on historical rules enforced when an unprivileged process .\" sends a signal. .\" Translated 16 Jan 1998 by Vicente Pastor Gómez .\" Translation revised 21 April 1998 by Juan Piernas .\" Revisado por Miguel Pérez Ibars el 18-noviembre-2004 .\" .TH KILL 2 "18 Diciembre 2001" "Linux 2.5.0" "Manual del Programador de Linux" .SH NOMBRE kill \- enviar una señal a un proceso .SH SINOPSIS .nf .B #include .br .B #include .sp .BI "int kill(pid_t " pid ", int " sig ); .fi .SH DESCRIPCIÓN La llamada .B kill se puede usar para enviar cualquier señal a un proceso o grupo de procesos. .PP Si \fIpid\fP es positivo, entonces la señal \fIsig\fP es enviada a \fIpid\fP. En este caso, se devuelve 0 si hay éxito, o un valor negativo si hay error. .PP Si \fIpid\fP es 0, entonces \fIsig\fP se envía a cada proceso en el grupo de procesos del proceso actual. .PP Si \fIpid\fP es igual a \-1, entonces se envía \fIsig\fP a cada proceso, excepto al proceso 1 (init), vea más abajo. .PP Si \fIpid\fP es menor que \-1, entonces se envía \fIsig\fP a cada proceso en el grupo de procesos \fI\-pid\fP. .PP Si \fIsig\fP es 0, entonces no se envía ninguna señal pero todavía se realiza la comprobación de errores. .SH "VALOR DEVUELTO" Si hay éxito, se devuelve cero. Si hay error, se devuelve \-1, y se actualiza .I errno apropiadamente. .SH ERRORES .TP .B EINVAL Se especificó una señal inválida. .TP .B ESRCH El pid o grupo de procesos no existe. Nótese que un proceso existente podría ser un zombi, un proceso que ya ha sido terminado, pero que aún no ha sido "\fBwait()\fPeado". .TP .B EPERM El proceso no tiene permiso para enviar la señal a alguno de los procesos que la recibirán. Para que un proceso tenga permiso para enviar una señal al proceso .I pid debe, o bien tener privilegios de root, o bien el ID de usuario real o efectivo del proceso que envía la señal ha de ser igual al set-user-ID real o guardado del proceso que la recibe. En el caso de SIGCONT es suficiente con que los procesos emisor y receptor pertenezcan a la misma sesión. .SH OBSERVACIONES Es imposible enviar una señal a la tarea número uno, el proceso init, para el que no ha sido instalado un manejador de señales. Esto se hace para asegurarse de que el sistema no se venga abajo accidentalmente. .LP POSIX 1003.1-2001 requiere que la llamada \fIkill(-1,sig)\fP envíe \fIsig\fP a todos los procesos a los que el proceso actual puede mandar señales, excepto posiblemente a algunos procesos del sistema definidos por la implementación. Linux permite a un proceso enviarse una señal a sí mismo, pero en Linux la llamada \fIkill(-1,sig)\fP no envía ninguna señal al proceso actual. .SH "HISTORIA DE LINUX" A lo largo de diferentes versiones del núcleo, Linux ha aplicado diferentes reglas en torno a los permisos requeridos por un proceso no privilegiado para enviar señales a otro proceso. .\" In the 0.* kernels things chopped and changed quite .\" a bit - MTK, 24 Jul 02 En las versiones del núcleo 1.0 a la 1.2.2, se podía enviar una señal si el identificador de usuario efectivo del remitente coincidía con el del receptor, o el identificador de usuario real del remitente coincidía con el del receptor. Desde la versión 1.2.3 a la 1.3.77, una señal podía ser emitida si el identificador de usuario efectivo del remitente coincidía con el identificador de usuario real o efectivo del receptor. Las reglas actuales, que son conformes con POSIX 1003.1-2001, fueron adoptadas en la versión 1.3.78 del núcleo. .SH "CONFORME A" SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3, POSIX 1003.1-2001 .SH "VÉASE TAMBIÉN" .BR _exit (2), .BR killpg (2), .BR signal (2), .BR tkill (2), .BR exit (3), .BR signal (7)