Entries in December 2011

Capturar señales en Python

written by uve

9 December 2011

A continuación dejo un pequeño ejemplo de como se pueden capturar señales con Python:

import signal
import time
import sys

def signal_handler(sig, func=None):
    print 'SignalHandler. Saliendo...'
    sys.exit(0)

if __name__=='__main__':
    signal.signal(signal.SIGTERM, signal_handler)

    print 'Esperando 15 segundos...'
    time.sleep(15)
    print 'Finalizado'

La idea es muy simple, el programa espera 15 segundos y finaliza. Si se envía la señal SIGTERM (señal 15) el proceso terminará sin esperar. Veamos como se ejecuta de forma normal:

$ python test.py 
Esperando 15 segundos...
Finalizado

Y aquí podemos ver cómo se capturan las señales y se finaliza antes el proceso:

$ python test.py &
[1] 8172
Esperando 15 segundos...
$ kill -15 8172
SignalHandler. Saliendo...
[1]+  Hecho                   python test.py
$

Full entry >>

Mútliples interfaces con Madwifi

written by uve

8 December 2011

Hoy me he encontrado con el siguiente problema, necesito montar dos interfaces virtuales sobre una tarjeta Wifi Atheros. Una de estas interfaces debe estar en modo Station (en modo cliente, como suelen funcionar las tarjetas en los portátiles) y otra en modo Ad-Hoc.

Para ello tengo instalado madwifi y funcionando perfectamente. Tras mucho pelear, me he dado cuenta que es importante el orden de creación de las interfaces virtuales. Madwifi sólo permite una interfaz en modo Station sobre una tarjeta física, y una vez creada una, ya no se permite crear más y nos encontramos con el siguiente error:

# wlanconfig ath create wlandev wifi0 wlanmode adhoc
wlanconfig: ioctl: Input/Output error

Por tanto, si vamos a crear un VAP es necesario dejar la Station para la última.

Full entry >>

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.