¿Hay alguna forma de asignar un número de señal (por ejemplo, signal.SIGINT) a su nombre respectivo (es decir, "SIGINT")?Obtener nombres de señales de números en Python
me gustaría ser capaz de imprimir el nombre de una señal en el registro cuando lo reciba, sin embargo no puedo encontrar un mapa de números de señal de nombres en Python, es decir:
import signal
def signal_handler(signum, frame):
logging.debug("Received signal (%s)" % sig_names[signum])
signal.signal(signal.SIGINT, signal_handler)
Para algunos sig_names diccionario, por lo que cuando el proceso recibe SIGINT imprime:
Received signal (SIGINT)
Estrictamente hablando, esto va a asignar 1 a '' SIG_IGN' y SIGHUP' en la mayoría de plataformas, así que supongo que la prueba debe ser si 'v.startswith ('SIG') y no v.startswith ('SIG _') '. –
También asigna dos veces 6 a 'SIGABRT' y' SIGIOT' en Mac OS X (aunque se podrían usar intercambiablemente, supongo, a diferencia de 'SIG_IGN', que no es una señal). –
@Brian: muy cierto ... por el momento no es una solución perfecta. Pero al menos es algo independiente de la plataforma. – Wolph