Provided by: manpages-es_1.55-9_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)