'\" t .\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" License. .\" Modified Sat Jul 24 17:34:08 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Sun Jan 7 01:41:27 1996 by Andries Brouwer (aeb@cwi.nl) .\" Modified Sun Apr 14 12:02:29 1996 by Andries Brouwer (aeb@cwi.nl) .\" Modified Sat Nov 13 16:28:23 1999 by Andries Brouwer (aeb@cwi.nl) .\" Modified 10 Apr 2002, by Michael Kerrisk (mtk16@ext.canterbury.ac.nz) .\" Modified 7 Jun 2002, by Michael Kerrisk (mtk16@ext.canterbury.ac.nz) .\" Added information on real-time signals .\" Modified 13 Jun 2002, by Michael Kerrisk (mtk16@ext.canterbury.ac.nz) .\" Noted that SIGSTKFLT is in fact unused .\" .\" Translated Jun 13 1996 Miguel A. Sepulveda (angel@vivaldi.princeton.edu) .\" Translation revised on Mon May 11 16:21:39 CEST 1998 by .\" Gerardo Aburruzaga García .\" Translation revised Mon Aug 17 1998 by Juan Piernas .\" Translation revised Fri Apr 21 2000 by Juan Piernas .\" Traducción revisada por Miguel Pérez Ibars el 14-febrero-2005 .\" .TH SIGNAL 7 "13 junio 2002" "Linux 2.4.18" "Manual del Programador de Linux" .SH NOMBRE signal \- lista de las señales disponibles .SH DESCRIPCIÓN Linux permite tanto las señales POSIX confiables (de aquí en adelante "señales estándar") como las señales POSIX en tiempo real. .SS "Señales Estándar" Linux soporta las señales estándar listadas a continuación. Muchos números de señales dependen de la arquitectura, tal como se indica en la columna "Valor". (Donde aparezcan tres valores, el primero de ellos es válido normalmente para alpha y sparc, el segundo para i386, ppc y sh, y el último para mips. Un \- indica que una señal no está presente en la arquitectura correspondiente.) Las entradas en la columna "Acción" de la tabla especifican la acción por defecto para la señal de la siguiente manera: .IP Term La acción por defecto es terminar el proceso. .IP Ign La acción por defecto es ignorar la señal. .IP Core La acción por defecto es terminar el proceso y realizar un volcado de memoria. .IP Stop La acción por defecto es detener el proceso. .PP En primer lugar se listan las señales descritas en el estándar POSIX.1 original. .sp .PP .TS l c c l ____ lB c c l. Señal Valor Acción Comentario SIGHUP \01 Term Cuelgue detectado en la terminal de control o muerte del proceso de control SIGINT \02 Term Interrupción procedente del teclado SIGQUIT \03 Core Terminación procedente del teclado SIGILL \04 Core Instrucción ilegal SIGABRT \06 Core Señal de aborto procedente de \fIabort\fP(3) SIGFPE \08 Core Excepción de coma flotante SIGKILL \09 Term Señal de matar SIGSEGV 11 Core Referencia inválida a memoria SIGPIPE 13 Term Tubería rota: escritura sin lectores SIGALRM 14 Term Señal de alarma de \fIalarm\fP(2) SIGTERM 15 Term Señal de terminación SIGUSR1 30,10,16 Term Señal definida por usuario 1 SIGUSR2 31,12,17 Term Señal definida por usuario 2 SIGCHLD 20,17,18 Ign Proceso hijo terminado o parado SIGCONT 19,18,25 Continuar si estaba parado SIGSTOP 17,19,23 Stop Parar proceso SIGTSTP 18,20,24 Stop Parada escrita en la tty SIGTTIN 21,21,26 Stop E. de la tty para un proc. de fondo SIGTTOU 22,22,27 Stop S. a la tty para un proc. de fondo .TE Las señales .B SIGKILL y .B SIGSTOP no pueden ser capturadas, bloqueadas o ignoradas. A continuación se listan las señales que no aparecen en el estándar POSIX.1 pero que son descritas en SUSv2 y SUSv3 / POSIX 1003.1-2001. .sp .PP .TS l c c l ____ lB c c l. Señal Valor Acción Comentario SIGBUS 10,7,10 Core Error de bus (acceso a memoria inválido) SIGPOLL Term Evento que se puede consultar (Sys V). Sinónimo de SIGIO SIGPROF 27,27,29 A Ha expirado el reloj de perfilado (profiling) SIGSYS 12,\-,12 C Argumento de rutina inválido (SVID) SIGTRAP 5 Core Trampa de traza/punto de ruptura SIGURG 16,23,21 B Condición urgente en conector (4.2 BSD) SIGVTALRM 26,26,28 A Alarma virtual (4.2 BSD) SIGXCPU 24,24,30 C Límite de tiempo de CPU excedido (4.2 BSD) SIGXFSZ 25,25,31 C Límite de tamaño de fichero excedido (4.2 BSD) .TE En las versiones de Linux anteriores a la 2.2 (incluida ésta) el comportamiento por defecto para .BR SIGSYS ", " SIGXCPU ", " SIGXFSZ ", " y (en otras arquitecturas distintas a SPARC y MIPS) .B SIGBUS era terminar el proceso (sin realizar un volcado de memoria). (En otros Unix's la acción por defecto para .BR SIGXCPU " y " SIGXFSZ es terminar el proceso sin realizar un volcado de memoria.) Linux 2.4 cumple los requisitos del estándar POSIX 1003.1-2001 con respecto a estas señales, terminando el proceso con un volcado de memoria. A continuación otras señales. .sp .PP .TS l c c l ____ lB c c l. Señal Valor Acción Comentario SIGIOT 6 Core Trampa IOT. Un sinónimo de SIGABRT SIGEMT 7,\-,7 Term SIGSTKFLT \-,16,\- Term Fallo de la pila en el coprocesador (no usada) SIGIO 23,29,22 Term E/S permitida ya (4.2 BSD) SIGCLD \-,\-,18 Ign Un sinónimo de SIGCHLD SIGPWR 29,30,19 Term Fallo de corriente eléctrica (System V) SIGINFO 29,\-,\- Un sinónimo para SIGPWR SIGLOST \-,\-,\- Term Bloqueo de fichero perdido. SIGWINCH 28,28,20 Ign Señal de reescalado de la ventana (4.3 BSD, Sun) SIGUNUSED \-,31,\- Term Señal no usada. .TE (La señal 29 es .B SIGINFO / .B SIGPWR en la arquitectura alpha pero .B SIGLOST en sparc.) La señal .B SIGEMT no está especificada en el estándar POSIX 1003.1-2001, pero sin embargo aparece en la mayoría de Unix's, donde su comportamiento por defecto es habitualmente terminar el proceso sin realizar un volcado de memoria. La señal .B SIGPWR (que no está especificada en el estándar POSIX 1003.1-2001) es ignorada habitualmente por defecto en aquellos Unix's donde aparece. La señal .B SIGIO (que no está especificada en el estándar POSIX 1003.1-2001) es ignorada por defecto en muchos Unix's. .SS "Señales en Tiempo real" Linux soporta señales en tiempo real tal como está definido originalmente en las extensiones de tiempo real de POSIX.4 (ahora incluidas en POSIX 1003.1-2001). Linux soporta 32 señales en tiempo real, numeradas del 32 .RB ( SIGRTMIN ) al 63 .RB ( SIGRTMAX ). (Los programas deben hacer referencia siempre a las señales en tiempo real usando la notación .BR SIGRTMIN +n, puesto que el rango de números de señales en tiempo real varía entre sistemas Unix's.) .PP A diferencia de las señales estándar, las señales en tiempo real no tienen un significado predefinido: el conjunto al completo de señales en tiempo real puede usarse para propósitos definidos por la aplicación. (Observe, sin embargo, que la implementación LinuxThreads usa las tres primeras señales en tiempo real.) .PP La acción por defecto para una señal en tiempo real no manejada es terminar el proceso receptor. .PP Las señales en tiempo real se distinguen por lo siguiente: .IP 1. 4 Varias instancias de señales en tiempo real pueden ser puestas en cola. En contraste, si varias instancias de una señal estándar llegan mientras esa señal está siendo bloqueada, solamente la primera de ellas es puesta en cola. .IP 2. 4 Si la señal se envía usando .BR sigqueue (2), puede enviarse con la señal un valor (bien un entero o un puntero). Si el proceso receptor establece un manejador para esta señal usando la bandera .B SA_SIGACTION en .BR sigaction (2) puede obtener estos datos a través del campo .I si_value de la estructura .I siginfo_t pasada como segundo argumento al manejador. Además, los campos .I si_pid y .I si_uid de esta estructura pueden usarse para obtener el identificador de proceso y el identificador de usuario real del proceso que envía la señal. .IP 3. 4 Las señales en tiempo real se entregan en un orden garantizado. Varias señales en tiempo real del mismo tipo llegan en el orden en que fueron enviadas. Si se envían diferentes señales en tiempo real a un proceso, se comunican comenzando por la que tenga menor número. (es decir, las señales con número bajo tienen mayor prioridad.) .PP Si hay señales estándar y en tiempo real pendientes para un proceso, POSIX deja indefinido cuál es entregada en primer lugar. Linux, como otras muchas implementaciones, da prioridad a las señales estándar en este caso. .PP Según POSIX, una implementación debería permitir que pudieran entrar en la cola de un proceso al menos _POSIX_SIGQUEUE_MAX (32) señales en tiempo real. Sin embargo, en lugar de establecer un límite por proceso, Linux impone un límite para todo el sistema sobre el número de señales en tiempo real que puede haber en la cola para todos los procesos. Este límite puede ser consultado (y con privilegios) modificado a través del fichero .I /proc/sys/kernel/rtsig-max. Un fichero relacionado, .IR /proc/sys/kernel/rtsig-nr , puede ser usado para averiguar cuántas señales en tiempo real están actualmente en cola. .SH "CONFORME A" POSIX.1 .SH FALLOS .B SIGIO y .B SIGLOST tienen el mismo valor. Este último está comentado en las fuentes del núcleo, pero el proceso de construcción de algunos programas aún piensa que la señal 29 es .BR SIGLOST. .SH "VÉASE TAMBIÉN" .BR kill (1), .BR kill (2), .BR setitimer (2), .BR sigaction (2), .BR signal (2), .BR sigprocmask (2), .BR sigqueue (2)