Provided by: manpages-es_1.55-10_all bug

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)

Linux 2.5.0                                     18 Diciembre 2001                                        KILL(2)