Tecnología

Inicio

Cómo evitar que más de una instancia de un programa en Python

Hay muchas razones para evitar la ejecución de múltiples instancias de un programa, incluyendo graves consecuencias como la pérdida de datos, la inestabilidad y el conflicto de recursos. Este es un problema que se resolvió de muchas maneras en muchas plataformas e idiomas. En una secuencia de comandos de Python, puede evitar más de una instancia mediante el uso de un fichero de bloqueo.

Instrucciones

1 Abra un nuevo archivo en un editor de texto para comenzar la secuencia de comandos de Python. Tipo "import os" para importar el módulo de 'os'.

2 Tipo "f = os.open ( 'lock.tmp', os.O_CREAT | os.O_EXCL | os.O_WRONLY)" para abrir un archivo con las banderas crear y exclusivos para hacer un fichero de bloqueo. El exclusivo y crean banderas asegurarse de que la llamada falla si existe el fichero de bloqueo. El fracaso le permite saber que otro programa se está ejecutando. Si desea notificar al usuario de este o tomar otras medidas, rodear la convocatoria abierta con un try: excepto: bloque y detectar la excepción os.error: "f = os.open ( 'lock.tmp', os.O_CREAT | os.O_EXCL | os.O_WRONLY) ".

3 Añadir "os.write (f, os.getpid ())" para escribir algunos datos en el fichero de bloqueo. Se acostumbra a utilizar el ID de proceso.

4 Enter "os.close (f)" para cerrar el fichero de bloqueo.

5 Tipo "os.remove ( 'lock.tmp')" se ejecuta cuando el programa se ha completado para eliminar el archivo.