![]() |
Como evitar 2 instancias de mi programa(Linux)
Estoy desarrollando un APP en LINUX con freepascal y necesito evitar la ejecucion de mi programa en mas de una instancia...
es decir que solo se pueda ajecutar una vez y la siguiente no se ejecute... si alguien conoce una rutina y/o la forma de como hacerlo, agradecere me expliquen que funciones utilizar... |
Cuando se inicia una instancia que guarde un archivo temporal por ejemplo en el directorio "/ tmp", con el numero de PID del proceso dentro de este archivo, entonces cuando ejecutas la segunda instancia esta debe verificar que el archivo exista y que el numero PID que este almaceno este activo si esto es afirmativo el programa se cerrara. Puedes utilizar el componente Tprocess para facilitarte la obtencion del PID y demas.
Aunque tiene una contra: si el programa se cuelga no borrara el archivo al salir y si al ejecutarlo devuelta puede que el PID que esta almacenado en el archivo este activo debido a que lo tiene otro proceso. Bueno espero haberme explicado bien y que te haya servido. Saludos |
Hola, tambien puedes revisar este truco,
o éste hilo o un poco de todo, de lo que aparece en el buscador del clubdelphi, y te haces una idea aproximada de las alternativas y elijes la que mejor te convenga. Saludos |
Hola devuelta, otra que recien se me ocurre es: con el componte TProccess tiras la instruccion PS grep | <Nombre_programa> y te lista todos los procesos con esos nombre y si aparecen mas de dos cierras el programa.
Saludos |
La franja horaria es GMT +2. Ahora son las 02:49:22. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi