Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: sekoto - Maggio 26, 2015, 10:33:25 pm
-
Salve a tutti esiste un modo per verificare se un programma/processo è attivo?
Ovviamente sotto linux...
Grazie a tutti
-
Quando è servito a me, l'unico modo che ho trovato è stato quello di analizzare l'output del comando di sistema "ps".
Forse però, adesso che ci penso, porebbe essere più semplice analizzare l'output del comando "pidof".
Ciao, Mario
-
Se ti serve per impedire che il tuo programma
venga avviato più di una volta dai uno sguardo qui:
http://wiki.lazarus.freepascal.org/UniqueInstance
-
Se ti serve per impedire che il tuo programma
venga avviato più di una volta dai uno sguardo qui:
http://wiki.lazarus.freepascal.org/UniqueInstance
Non so se è stato modificato nel frattempo, ma l'ultima volta che l'ho provato, aveva un difetto: per capire se un programma era in esecuzione o meno, usava un file civetta, che veniva ctreato all'avvio del programma e cancellato all'uscita.
Quindi se quel programma andava in crash, non lo potevi più lanciare, perché pensava che fosse ancora ine esecuzione.
Ciao, Mario
-
Non so se è stato modificato nel frattempo, ma l'ultima volta che l'ho provato, aveva un difetto: per capire se un programma era in esecuzione o meno, usava un file civetta, che veniva ctreato all'avvio del programma e cancellato all'uscita.
Quindi se quel programma andava in crash, non lo potevi più lanciare, perché pensava che fosse ancora ine esecuzione.
nella pagina wiki leggo:
17/04/11 - Version 1.0
Fix application being detected as running after a crash under unix
quindi presumo di si!
-
Ottimo ... peccato che nel frattempo mi sono fatto la gestione da solo !!!!!
Ciao, Mario
-
Veramente dalla mia applicazione devo poter vedere se un altro programma è in esecuzione...
come funziona pidof?
-
Adesso sono al lavoro e non ho Linux sottomano. Prova, da terminale, a digitare
A memoria comunque, se il programma non è in esecuzione, non dovresti avere nessun risultato, se è in esecuzione, dovrebbe restituirti una riga con il PID per ogni istanza del programma in esecuzione.
Ciao, Mario