Ver la Versión Completa : Como evitar 2 instancias de mi programa
pcicom
19-09-2006, 06:02:04
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...
Pascalizado
01-10-2006, 21:13:16
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
Bicho
01-10-2006, 21:25:25
Hola, tambien puedes revisar este (http://www.clubdelphi.com/trucos/index.php?id=169) truco,
o éste (http://www.clubdelphi.com/foros/showthread.php?t=34295) hilo
o un poco de todo, de lo que aparece en el buscador del clubdelphi (http://www.clubdelphi.com/foros/search.php), y te haces una idea aproximada de las alternativas y elijes la que mejor te convenga.
Saludos
Pascalizado
03-10-2006, 19:53:45
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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.