bionic (2) kill.2.gz

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)