Foros del Web » Programando para Internet » Python »

No permitir ejecutar mas de una instancia de un mismo programa a la vez.

Estas en el tema de No permitir ejecutar mas de una instancia de un mismo programa a la vez. en el foro de Python en Foros del Web. Holas!! Necesito validar que se pueda ejecutar solo una instancia de mi programa en python, osea si ejecuto el programa con línea de comandos, ejemplo: ...
  #1 (permalink)  
Antiguo 08/06/2012, 09:20
 
Fecha de Ingreso: octubre-2011
Ubicación: Satiago de Chile
Mensajes: 8
Antigüedad: 13 años, 1 mes
Puntos: 0
No permitir ejecutar mas de una instancia de un mismo programa a la vez.

Holas!!

Necesito validar que se pueda ejecutar solo una instancia de mi programa en python, osea si ejecuto el programa con línea de comandos, ejemplo: python programa.py, y luego vuelvo a escribir esa linea de comando mientras la primera se estaba ejecuta, entonces el sistema no me permita ejecutar la segunda porque ya se está ejecutando programa.py de antes y no ha terminado aún.

¿Cómo puedo hacerlo?
Sería algo como la función de vb6
If App.PrevInstance = True Then
End
End If

pero necesito hacerlo en python.

Alguién me puede guiar en como se debe trabajar esto??

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 08/06/2012, 20:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: No permitir ejecutar mas de una instancia de un mismo programa a la vez.

Lo que tu quieres es un filelock que básicamente lo que hace es lo siguiente:

Supón que tu programa se llama A.py (y quieres que corra una sola vez)

1.- A.py verifica si hay lockfile.
2.- Si existe entonces A.py ya se encuentra corriendo. Entonces termina el proceso
3.- Si no existe entonces eres la primera instancia en correr. Creas el lockfile y lo eliminas al terminar.

http://stackoverflow.com/questions/4...file-in-python

Etiquetas: gui, instancia, permitir, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.