[pyar] Mejor forma de generar pid files?

Andrés Gattinoni andresgattinoni en gmail.com
Lun Dic 13 11:29:32 ART 2010


2010/12/13 Eka (Esteban Feldman) <ekagaurangadas en gmail.com>:
> Andres: de la docu: Note: the functions registered via this module are not
> called when the program is killed by a signal not handled by Python, when a
> Python fatal internal error is detected, or when os._exit() is called.
>
> Mi idea es, cuando se ejecuta de nuevo el programa, ver si existe el
> archivo, leer el pid y ver si realmente esta corriendo, dado que pudo no
> haber borrado el pid file.
>
> Eso parece bien? Uso Popen con ps?

Otra opción que podés usar es psutil [0] para hacer lo mismo pero más
pythónicametne.

Por otro lado, si lo que querés saber es si el programa está corriendo
o no, una opción muy efectiva es usar un socket unix.
Cuando corrés el programa hacés que chequee si se puede conectar al
socket unix y si éste le contesta. Si no puede hacerlo, matá cualquier
otra instancia del programa que pueda haber, se pone a escuchar en ese
socket y hace lo que tenga que hacer. De esa manera no solamente te
asegurás si el programa ya está corriendo, sino si está activo, porque
podría darse el caso de que se cuelgue el proceso. Con lo cual en el
ps te seguiría apareciendo, pero en la práctica no estaría haciendo
nada.

[0] http://code.google.com/p/psutil/



More information about the pyar mailing list