signal

SIGNAL(7)               Manual del Programador de Linux              SIGNAL(7)



NOMBRE
       signal - lista de las señales disponibles

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.

   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:

       Term   La acción por defecto es terminar el proceso.

       Ign    La acción por defecto es ignorar la señal.

       Core   La acción por defecto es terminar el proceso y realizar un
              volcado de memoria.

       Stop   La acción por defecto es detener el proceso.

       En primer lugar se listan las señales descritas en el estándar
       POSIX.1 original.


       Señal     Valor     Acción   Comentario
       ───────────────────────────────────────────────────────────────────────
       SIGHUP        1       Term     Cuelgue detectado en la terminal de
                                      control o muerte del proceso de control
       SIGINT        2       Term     Interrupción procedente del teclado
       SIGQUIT       3       Core     Terminación procedente del teclado
       SIGILL        4       Core     Instrucción ilegal
       SIGABRT       6       Core     Señal de aborto procedente de abort(3)
       SIGFPE        8       Core     Excepción de coma flotante
       SIGKILL       9       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 alarm(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

       Las señales SIGKILL y 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.


       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)

       En las versiones de Linux anteriores a la 2.2 (incluida ésta) el
       comportamiento por defecto para SIGSYS, SIGXCPU, SIGXFSZ, y (en otras
       arquitecturas distintas a SPARC y MIPS) SIGBUS era terminar el proceso
       (sin realizar un volcado de memoria).  (En otros Unix's la acción por
       defecto para 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.


       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.

       (La señal 29 es SIGINFO / SIGPWR en la arquitectura alpha pero SIGLOST
       en sparc.)

       La señal 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 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 SIGIO (que no está especificada en el estándar POSIX
       1003.1-2001) es ignorada por defecto en muchos Unix's.

   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 (SIGRTMIN) al 63 (SIGRTMAX).  (Los programas
       deben hacer referencia siempre a las señales en tiempo real usando la
       notación SIGRTMIN+n, puesto que el rango de números de señales en
       tiempo real varÃa entre sistemas Unix's.)

       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.)

       La acción por defecto para una señal en tiempo real no manejada es
       terminar el proceso receptor.

       Las señales en tiempo real se distinguen por lo siguiente:

       1.  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.

       2.  Si la señal se envÃa usando 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
           SA_SIGACTION en sigaction(2) puede obtener estos datos a través
           del campo si_value de la estructura siginfo_t pasada como segundo
           argumento al manejador.  Además, los campos si_pid y 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.

       3.  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.)

       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.

       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 /proc/sys/kernel/rtsig-max.  Un
       fichero relacionado, /proc/sys/kernel/rtsig-nr, puede ser usado para
       averiguar cuántas señales en tiempo real están actualmente en cola.

CONFORME A
       POSIX.1

FALLOS
       SIGIO y 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 SIGLOST.

VÃASE TAMBIÃN
       kill(1), kill(2), setitimer(2), sigaction(2), signal(2),
       sigprocmask(2), sigqueue(2)



Linux 2.4.18                     13 junio 2002                       SIGNAL(7)