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)