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

NOMBRE

       kill - enviar una senal a un proceso

SINOPSIS

       #include <sys/types.h>
       #include <signal.h>

       int kill(pid_t pid, int sig);

DESCRIPCI'ON

       La  llamada kill se puede usar para enviar cualquier senal a un proceso
       o grupo de procesos.

       Si pid es positivo, entonces la senal sig es enviada a  pid.   En  este
       caso, se devuelve 0 si hay exito, o un valor negativo si hay error.

       Si  pid  es  0,  entonces  sig  se  envia a cada proceso en el grupo de
       procesos del proceso actual.

       Si pid es igual a -1, entonces se envia sig a cada proceso, excepto  al
       proceso 1 (init), vea mas abajo.

       Si  pid  es  menor  que  -1, entonces se envia sig a cada proceso en el
       grupo de procesos -pid.

       Si sig es 0, entonces no se envia ninguna senal pero todavia se realiza
       la comprobacion de errores.

VALOR DEVUELTO

       Si  hay  exito,  se  devuelve  cero. Si hay error, se devuelve -1, y se
       actualiza errno apropiadamente.

ERRORES

       EINVAL Se especifico una senal invalida.

       ESRCH  El pid o grupo de procesos no  existe.  Notese  que  un  proceso
              existente  podria  ser  un  zombi,  un  proceso  que  ya ha sido
              terminado, pero que aun no ha sido "wait()eado".

       EPERM  El proceso no tiene permiso para enviar la senal a alguno de los
              procesos  que  la  recibiran.  Para que un proceso tenga permiso
              para enviar  una  senal  al  proceso  pid  debe,  o  bien  tener
              privilegios de root, o bien el ID de usuario real o efectivo del
              proceso que envia la senal 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 sesion.

OBSERVACIONES

       Es  imposible  enviar una senal a la tarea numero uno, el proceso init,
       para el que no ha sido instalado un manejador de senales. 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) envie sig a
       todos los procesos a los que el proceso actual  puede  mandar  senales,
       excepto  posiblemente  a  algunos procesos del sistema definidos por la
       implementacion.  Linux permite a un proceso enviarse  una  senal  a  si
       mismo,  pero en Linux la llamada kill(-1,sig) no envia ninguna senal al
       proceso actual.

HISTORIA DE LINUX

       A lo largo de  diferentes  versiones  del  nucleo,  Linux  ha  aplicado
       diferentes  reglas en torno a los permisos requeridos por un proceso no
       privilegiado para enviar senales a otro proceso.  En las versiones  del
       nucleo 1.0 a la 1.2.2, se podia enviar una senal si el identificador de
       usuario efectivo del remitente coincidia con  el  del  receptor,  o  el
       identificador  de  usuario  real  del  remitente  coincidia  con el del
       receptor.  Desde la version 1.2.3 a la  1.3.77,  una  senal  podia  ser
       emitida si el identificador de usuario efectivo del remitente coincidia
       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 version 1.3.78 del nucleo.

CONFORME A

       SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3, POSIX 1003.1-2001

V'EASE TAMBI'EN

       _exit(2), killpg(2), signal(2), tkill(2), exit(3), signal(7)