GNU/Linux >> Tutoriels Linux >  >> Linux

Python - Piège tous les signaux

Depuis Python 3.5, les constantes de signal sont définies comme une énumération, permettant une approche plus agréable :

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`

Vous pouvez simplement parcourir les signaux dans le module de signaux et les configurer.

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. Signaux Linux - Exemple de programme C pour capturer des signaux (SIGINT, SIGKILL, SIGSTOP, etc.)

  2. Fondamentaux des signaux Linux - Partie I

  3. UDP-Broadcast sur toutes les interfaces

  4. Identification du nom du signal reçu dans Bash

  5. IPC utilisant des signaux sur Linux

Comment installer Python sur Linux

Comment installer Python 3 sur Windows 10

Instruction Python if..else

Linux Bash Scripting Part5 - Signaux et tâches

Autoriser Ctrl-C à interrompre une extension Python C

Quels numéros de signal fonctionnent avec la commande kill ?