señal – Comando Linux / Unix

señal – Comando Linux / Unix

señal – Comando Linux / Unix

VALORACIÓN DEL ARTÍCULO:
5/5


Linux soporta tanto señales POSIX fiables (en adelante «señales estándar») como señales POSIX en tiempo real.

Señales estándar

Linux soporta las señales estándar listadas a continuación. Varios números de señal dependen de la arquitectura, como se indica en la columna «Valor». (Donde se dan tres valores, el primero es generalmente válido para alpha y sparc, el del medio para i386, ppc y sh, y el último para mips. A – indica que una señal está ausente en la arquitectura correspondiente.)

Las entradas de la columna «Acción» de la tabla especifican la acción por defecto para la señal, como se indica a continuación:

Término

La acción por defecto es terminar el proceso.

Ign

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

Núcleo

La acción predeterminada es terminar el proceso y volcar el núcleo.

Detener

La acción predeterminada es detener el proceso.

En primer lugar, las señales descritas en la norma original POSIX.1.

SignalValueActionCommentor death of controlling process SIGINT 2TermInterrupt from keyboard SIGQUIT 3CoreQuit from keyboard SIGILL 4CoreIllegal Instruction SIGABRT 6CoreAbort señal de abort(3) SIGFPE 8CoreFloating point exception SIGKILL 9TermKill señal SIGSEGV 11CoreInvalid memory reference SIGPIPE 13TermBroken pipe: escribir en la tubería sin lectores SIGALRM 14TermTimer signal from alarm(2) SIGTERM 15TermTermination signal SIGUSR1 30,10,16TérminoSeñal definida por el usuario 1 SIGUSR2 31,12,17TérminoSeñal definida por el usuario 2 SIGCHLD 20,17,18IgnChild detuvo o terminó SIGCONT 19,18,25Continuar si se detuvo SIGSTOP 17,19,23StopStopStop process SIGTSTP 18,20,24StopStopStop tecleado en tty SIGTTIN 21,21,26Stoptty input for background process SIGTTOU 22,22,27Stoptty output for background process

Las señales SIGKILL y SIGSTOP no pueden ser capturadas, bloqueadas o ignoradas.

A continuación, las señales que no se encuentran en la norma POSIX.1, sino que se describen en SUSv2 y SUSv3 / POSIX 1003.1-2001.

SignalValueActionComment SIGPOLL TermPollable event (Sys V). Sinónimo de SIGIO SIGPROF 27,27,29TermProfiling timer expired SIGSYS 12,-,12CoreBad argument to routine (SVID) SIGTRAP 5CoreTrace/breakpoint trap SIGURG 16,23,21IgnUrgent condition on socket (4.2 BSD) SIGVTALRM 26,26,28TermReloj de alarma virtual (4.2 BSD) SIGXCPU 24,24,30CoreCPU tiempo límite excedido (4.2 BSD) SIGXFSZ 25,25,31CoreFile size limit exceeded (4.2 BSD)

Hasta e incluyendo Linux 2.2, el comportamiento por defecto para SIGSYS , SIGXCPU , SIGXFSZ , SIGXFSZ , y (en arquitecturas que no sean SPARC y MIPS), SIGBUS , SIGBUS era terminar el proceso (sin un volcado de núcleo). (En algunos otros Unices la acción por defecto para SIGXCPU y SIGXFSZ es terminar el proceso sin un volcado de núcleo.) Linux 2.4 cumple con los requisitos de POSIX 1003.1-2001 para estas señales, terminando el proceso con un volcado de núcleo.

A continuación varias otras señales.

SignalValueActionComment SIGEMT 7,-,7Term SIGSTKFLT -,16,-TermStack fault on coprocessor (unused) SIGIO 23,29,22TermI/O now possible (4.2 BSD) SIGCLD -,-,18IgnA sinónimo de SIGCHLD SIGPWR 29,30,19Fallo en la alimentación (Sistema V) SIGINFO 29,-Un sinónimo de SIGPWR SIGLOST -,-,-,-TermFile lock lost SIGWINCH 28,28,20IgnWindow redimensionar la señal (4.)3 BSD, Sun) SIGUNUSED -,31,-TermSeñal no utilizada (será SIGSYS)

(La señal 29 es SIGINFO / SIGPWR en un alfa pero SIGLOST en un sparc.)

SIGEMT no está especificado en POSIX 1003.1-2001, pero no obstante aparece en la mayoría de los otros Unices, donde su acción por defecto es típicamente terminar el proceso con un volcado de núcleo.

SIGPWR (que no está especificado en POSIX 1003.1-2001) es típicamente ignorado por defecto en aquellos otros Unices donde aparece.

SIGIO (que no está especificado en POSIX 1003.1-2001) se ignora por defecto en varios otros Unices.

Señales en tiempo real

Linux soporta señales en tiempo real tal y como se definieron originalmente en las extensiones en tiempo real POSIX.4 (y ahora incluidas en POSIX 1003.1-2001). Linux soporta 32 señales en tiempo real, numeradas de 32 ( SIGRTMIN ) a 63 ( SIGRTMAX ). (Los programas siempre deben referirse a señales en tiempo real usando notación SIGRTMIN +n, ya que el rango de números de señales en tiempo real varía entre los Unices.)

A diferencia de las señales estándar, las señales en tiempo real no tienen un significado predefinido: todo el conjunto de señales en tiempo real puede utilizarse para fines definidos por la aplicación. (Tenga en cuenta, sin embargo, que la implementación de LinuxThreads utiliza 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 de recepción.

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

  1. Se pueden poner en cola múltiples instancias de señales en tiempo real. Por el contrario, si se entregan varias instancias de una señal estándar mientras esa señal está actualmente bloqueada, entonces sólo se pone en cola una instancia.
  2. Si la señal se envía utilizando sigqueue (2), se puede enviar un valor acompañante (un entero o un puntero) con la señal. Si el proceso de recepción establece un controlador para esta señal utilizando el indicador SA_SIGACTION a sigaction (2) entonces puede obtener estos datos a través del campo si_value de la estructura siginfo_t pasado como segundo argumento al controlador. Además, los campos si_pid y si_uid de esta estructura pueden utilizarse para obtener el PID y el ID de usuario real del proceso que envía la señal.
  3. Las señales en tiempo real se entregan en un orden garantizado. Múltiples señales en tiempo real del mismo tipo se entregan en el orden en que fueron enviadas. Si se envían diferentes señales en tiempo real a un proceso, se envían a partir de la señal con el número más bajo. (Es decir, las señales con números bajos tienen mayor prioridad.)

Si tanto las señales estándar como las en tiempo real están pendientes de un proceso, POSIX deja sin especificar cuál es el primero que se entrega. Linux, como muchas otras implementaciones, da prioridad a las señales estándar en este caso.

Según POSIX, una implementación debe permitir que al menos _POSIX_SIGQUEUE_MAX (32) señales en tiempo real se coloquen en un proceso. Sin embargo, en lugar de poner un límite por proceso, Linux impone un límite en todo el sistema sobre el número de señales en cola en tiempo real para todos los procesos. Este límite se puede ver (y con privilegios) a través del archivo /proc/sys/kernel/rtsig-max. Un archivo relacionado, /proc/sys/kernel/rtsig-max, puede usarse para averiguar cuántas señales en tiempo real están en cola.

CONFORMANDO A

POSIX.1

Importante: Utilice el comando man ( % man) para ver cómo se utiliza un comando en su equipo particular.

TAMBIÉN TE INTERESA

mitos-y-verdades-sobre-redes-5G

Redes 5G: mitos y verdades

¿Hemos ido demasiado rápido pensando en el potencial de las redes 5G? ¿Se ha hablado demasiado y se han dado cosas por sentadas que aún no son ciertas? Tratamos en este post qué hay de cierto y qué no sobre el avance del 5G. Cabe recordar que esta tecnología de conectividad es la que permite

casa-airbnb-en-Santa-Cruz-de-Tenerife

Viajar solo: una opción con funciones añadidas en Airbnb

Viajar solo es una experiencia única según testimonios que se lanzan a hacer turismo en solitario. Te ayuda a conocerte a ti mismo más y mejor, te exige sacar tus habilidades sociales para conectar con gente durante la travesía y, al no tener ataduras conyugales, te permite encontrar un ligue allá donde estés. Índice de

sinalogy-BC500-y-TC500

Estas cámaras de videovigilancia de Sinalogy merecen la pena

Las cámaras de videovigilancia son un elemento fundamental para todo aquel quiera reforzar la seguridad en una casa o en una empresa. Recientemente, se ha conocido que la vivienda del jugador del Real Madrid, Rodrygo, era asaltada mientras el delantero disputaba la final de la Copa del Rey en Sevilla. No es la primera que

beneficios-de-chatGPT-para-emprendedores

8 usos de ChatGPT para cualquier emprendedor

Estamos en la era de ChatGPT y el boom de las aplicaciones de inteligencia artificial. Junto al popular desarrollo de OpenAI, han aparecido un sinfín de soluciones para usuarios y empresas. De hecho, se ha popularizado tanto la inteligencia artificial que es necesario parar porque no se sabe hasta qué punto podría ser dañina. Como

Tecnologia Linea de Gol

La tecnología detrás de la Tecnología de la Línea de Gol

La Tecnología de la Línea de Gol utiliza cámaras de alta velocidad para determinar si el balón ha cruzado completamente la línea, asegurando que los goles sean concedidos de manera más precisa. Este sistema se ha vuelto obligatorio en competiciones de fútbol en todo el mundo desde el 2012, y ha tenido un impacto positivo en la eliminación de controversias y en mejorar la experiencia de los aficionados.