GNU/Linux >> Linux Esercitazione >  >> Linux

Python - Intrappola tutti i segnali

A partire da Python 3.5, le costanti del segnale sono definite come enum, consentendo un approccio più gradevole:

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`

Potresti semplicemente scorrere i segnali nel modulo di segnale e configurarli.

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. Come installare Python su Linux

  2. Trova tutti i file Python nel file system Linux?

  3. Identificare il nome del segnale ricevuto in Bash

  4. IPC che utilizza Signals su Linux

  5. signalfd() perde i segnali

Come installare Python 3 su Windows 10

Python if..else Istruzione

Linux Bash Scripting Part5 – Segnali e lavori

Chi utilizza i segnali POSIX in tempo reale e perché?

Consentire a Ctrl-C di interrompere un'estensione C di Python

Quali numeri di segnale funzionano con il comando kill?