GNU/Linux >> Tutoriales Linux >  >> Linux

Python - Atrapa todas las señales

A partir de Python 3.5, las constantes de señal se definen como una enumeración, lo que permite un enfoque más agradable:

import signal

catchable_sigs = set(signal.Signals) - {signal.SIGKILL, signal.SIGSTOP}
for sig in catchable_sigs:
    signal.signal(sig, print)  # Substitute handler of choice for `print`

Simplemente puede recorrer las señales en el módulo de señales y configurarlas.

for i in [x for x in dir(signal) if x.startswith("SIG")]:
  try:
    signum = getattr(signal,i)
    signal.signal(signum,sighandler)
  except (OSError, RuntimeError) as m: #OSError for Python3, RuntimeError for 2
    print ("Skipping {}".format(i))

Linux
  1. UDP-Broadcast en todas las interfaces

  2. Colas de señal en C

  3. ¿Quién usa señales POSIX en tiempo real y por qué?

  4. Permitir que Ctrl-C interrumpa una extensión C de Python

  5. signalfd() pierde señales

Cómo instalar Python 3 en Windows 10

Declaración de Python if..else

Linux Bash Scripting Part5 – Señales y trabajos

Identificar el nombre de la señal recibida en Bash

IPC usando Signals en Linux

¿Qué números de señal funcionan con el comando de matar?