[Python-es] Lanzar aplicación como demonio

marco python en diezplus.com
Mar Mar 1 19:21:22 CET 2011


Hola a todos!!

Tengo la siguiente duda.

Necesito lanzar un proceso que quede residente en memoria y que cada 
cierto tiempo ejecute algo,
debería quedar tipo demonio de linux o tipo TSR (Terminate and Stay 
Resident).
Utilizo python 2.6 sobre Windows 7.
Mirad el siguiente ejemplo,

#leer_com.py###########################
import threading, time
def espera():
     while True:
         time.sleep(15)
         # comprobaciones varias
         # etc
         print "comprobando..."
p = threading.Thread(target = espera,)
p.setDaemon(True)
p.start()
######################################

Si lo ejecuto en una shell de python, sin problema, cada 15 segundos me 
ejecuta la función espera,
mientras tanto yo puedo seguir trabajando con cualquier cosa desde esa 
misma shell.
Ahora bien, si lo ejecuto desde una línea de comandos del sistema, ej.:  
c:\>python leer_com.py
acaba el programa y no hace nada de nada. Lo he convertido a ejecutable 
con py2exe y más de
lo mismo, no funciona. Si hago  p.join()  en el script queda en espera 
pero no vuelve al interprete de comandos
que lo que yo necesito. Necesito lanzarlo y a ejecutar otra cosa.
Espero haberme explicado bien.

Saludos.
Marco.


Más información sobre la lista de distribución Python-es