7.1 signal -- Imposta i gestori per eventi asincroni

Questo modulo fornisce meccanismi atti ad usare gestori di segnali in Python. Alcune regole generali per lavorare con i segnali e i loro gestori:

Le variabili definite nel modulo signal sono:

SIG_DFL
Questa è una delle due opzioni standard di gestione dei segnali; effettuerà semplicemente la funzione predefinita per il segnale. Per esempio, su molti sistemi l'azione predefinita per SIGQUIT è fare un core dump ed uscire, mentre l'azione predefinita per SIGCLD è semplicemente ignorarlo.

SIG_IGN
Questo è un altro gestore di segnale standard, che semplicemente ignorerà il segnale dato.

SIG*
Tutti i numeri di segnale sono definiti simbolicamente. Per esempio, il segnale di hangup è definito come signal.SIGHUP; i nomi di variabile sono identici ai nomi usati nei programmi C, come li si trova in <signal.h>. La pagina del manuale Unix per `signal()' elenca i segnali esistenti (su alcuni sistemi si trova in signal(2), su altri l'elenco si trova in signal(7)). Attenzione al fatto che non tutti i sistemi definiscono lo stesso insieme di nomi di segnali; solo questi nomi definiti dal sistema sono definiti in questo modulo.

NSIG
Uno in più del più alto numero di segnale.

Il modulo signal definisce le seguenti funzioni:

alarm( time)
Se time è diverso da zero, questa funzione richiede che un segnale SIGALRM sia trasmesso al processo in time secondi. Ogni precedente allarme schedulato viene cancellato (solo un'allarme può essere schedulato in ogni momento). Il valore restituito è il numero di secondi rimanenti prima di ogni precedente allarme impostato che deve essere trasmesso. Se time è zero, nessun allarme è attualmente schedulato ed ogni allarme schedulato è cancellato. Il valore restituito è il numero di secondi rimanente prima di un precedente allarme schedulato. (Leggere la pagina di manuale Unix alarm(2).) Disponibilità: Unix.

getsignal( signalnum)
Restituisce il gestore di segnale corrente per il segnale signalnum. Il valore restituito può essere un oggetto Python chiamabile, o uno dei valori speciali signal.SIG_IGN, signal.SIG_DFL o None. Qui, signal.SIG_IGN significa che il signale è stato in precedenza ignorato, signal.SIG_DFL significa che era in uso la maniera predefinita per gestire il segnale, e None significa che il gestore di segnale precedente non è stato installato da Python.

pause( )
Impone al processo di dormire fino a che un segnale venga ricevuto; il gestore appropriato verrà quindi chiamato. Non ritorna nulla. Non disponibile su Windows. (leggere la pagina di manuale Unix signal(2).)

signal( signalnum, handler)
Imposta la gestione per il segnale signalnum alla funzione handler. handler può essere un oggetto Python chiamabile che prende due argomenti (vedere sotto), o uno dei valori speciali signal.SIG_IGN o signal.SIG_DFL. Sarà restituito il precedente gestore di segnale. (leggere sopra la descrizione getsignal()). (Leggere la pagina di manuale Unix signal(2).)

Quando i thread sono abilitati, questa funzione può essere chiamata unicamente dal thread principale; chiamandola da altri thread verrà sollevata un'eccezione ValueError.

L'handler viene chiamato con due argomenti: il numero di segnale e lo stack frame corrente (None od un oggetto frame; leggere il manuale di riferimento per una descrizione degli oggetti frame).



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.