• # Tout dépend...

    Posté par . En réponse au message interdire plusieurs instances du meme programme. Évalué à 6.

    ... du but de ton interdiction. Si tu cherches à empêcher que l'utilisateur lance "par erreur" le logiciel en double (une sorte d'anti-boulet, en somme), il est assez simple de créer un fichier de "lock" lorsque le programme est lancé, et de refuser de démarrer si le fichier est déjà présent (un tel fichier peut, par exemple, se créer dans ~/.tonprogramme/ ou dans /tmp). Le seul inconvénient de cette approche est qu'en cas de crash, il faut effacer manuellement le fichier-verrou.

    Une bidouille permettant d'éviter l'effacement manuel : à la création du fichier verrou, ajouter dedans le PID du processus en cours. En cas de lancement d'une instance du programme, vérifier non seulement l'existence du fichier, mais aussi l'existence d'un processus de même PID que ce qui est indiqué dans le fichier.

    Dans tous les cas, tout cela est faisable aussi bien en Perl (gtk ou pas), en Python, en C, en Bash, ...

    Par contre, si tu cherches à éviter que l'utilisateur ne puisse parvenir à lancer deux instances du même programme, c'est plus difficile: il pourra toujours éditer ton code et désactiver le test. Pour ça, en dehors d'une solution hard à la palladium (et encore), je ne vois pas trop.