Provided by:
manpages-es_1.55-9_all 
NOMBRE
kill - enviar una señal a un proceso
SINOPSIS
#include <sys/types.h>
#include <signal.h>
int kill(pid_t pid, int sig);
DESCRIPCIÓN
La llamada kill se puede usar para enviar cualquier señal a un proceso
o grupo de procesos.
Si pid es positivo, entonces la señal sig es enviada a pid. En este
caso, se devuelve 0 si hay éxito, o un valor negativo si hay error.
Si pid es 0, entonces sig se envía a cada proceso en el grupo de
procesos del proceso actual.
Si pid es igual a -1, entonces se envía sig a cada proceso, excepto al
proceso 1 (init), vea más abajo.
Si pid es menor que -1, entonces se envía sig a cada proceso en el
grupo de procesos -pid.
Si sig es 0, entonces no se envía ninguna señal pero todavía se realiza
la comprobación de errores.
VALOR DEVUELTO
Si hay éxito, se devuelve cero. Si hay error, se devuelve -1, y se
actualiza errno apropiadamente.
ERRORES
EINVAL Se especificó una señal inválida.
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 "wait()eado".
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 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.
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.
POSIX 1003.1-2001 requiere que la llamada kill(-1,sig) envíe sig 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 kill(-1,sig) no envía ninguna señal al
proceso actual.
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. 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.
CONFORME A
SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3, POSIX 1003.1-2001
VÉASE TAMBIÉN
_exit(2), killpg(2), signal(2), tkill(2), exit(3), signal(7)