[pyar] Reiniciar aplicacion

Ricardo Aráoz ricaraoz en gmail.com
Mie Jul 21 10:52:57 ART 2010


On 21/07/2010 10:28 a.m., Andrés Gattinoni wrote:
> 2010/7/21 Gonzalo<gonchi.sanchez en gmail.com>:
>    
>> Hola! Hace tiempo que no escribo, tengo una pequnia consulta:
>> Estoy haciendo una aplicación en python y necesito que en cierto
>> momento (mediante un evento o algo que yo controlo) la aplicacion se
>> reinicie. Buscando encontré la función reload() pero según la doc:
>> "Reload a previously imported module. The argument must be a module
>> object, so it must have been successfully imported before. "
>> Entonces creo que no me sirve...
>> Alguna sugerencia?
>>      
> Me puse a buscar en Google "python sighup", ya que SIGHUP es la señal
> que se suele enviar a un proceso para que haga reload, y encontré este
> link:
> http://pleac.sourceforge.net/pleac_python/sockets.html
>
> Bajo el título "Restarting a Server on Demand" tira un ejemplo que
> captura el SIGHUP y relanza el proceso utilizando os.execv.
>
> No sé si será lo que necesitás ni si es lo más prolijo (de hecho me
> parece bastante desprolijo la forma de usar variables globales, y con
> esos nombres... me costó bastante entenderlo), pero capaz te da alguna
> otra idea.
>    

En realidad habría que definir qué significa "reiniciar" la aplicación. 
Volver variables, historia, etc a cero? En ese caso se hace con una 
función que se use para iniciar y reiniciar todo esto. Volver a dibujar 
la pantalla? Bueno, será cuestión de cerrarla y borrarla y volver a 
instanciarla. Cargar nuevamente el script? Ahí investigaría si el script 
principal no puede ser meramente un cargador que genere hijo (módulo 
subprocess) que sea tu proceso en sí y que cuando le das esta señal tu 
proceso termine e informe al principal que vuelva a generar otro 
subproceso (estoy mandando verdura?). Cargar todo, incluyendo el 
intérprete python? Entonces que tu script antes de terminar se ejecute a 
sí mismo (también mediante subprocess?).
Me encantaría escuchar comentarios de gente más entendida sobre estas 
posibilidades ya que nunca las he tenido que usar y estaría bueno aprender.





More information about the pyar mailing list