IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Une seule exécution simultanée [Fait]


Sujet :

Python

  1. #1
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Par défaut Une seule exécution simultanée
    Bonjour,

    Je cherche la solution la plus propre pour qu’un script ne lance pas plus d’une fois en même temps. Le script fonctionne à la fois sous linux et sous windows.

    Actuellement pour windows j’utilise une clé de registre et pour linux un fichier de lock (qui ne fonctionne pas bien)
    J’aimerais bien trouver une solution plus propre qui marche à la fois sous linux et sous windows. Et puis c’est source à problème car s’il y a une coupure de courant ou que l’ordinateur plante, la clé ou le fichier lock sont toujours présent au démarrage !

    J’ai beaucoup cherché sur le web (peut-être pas avec les bons mots clés), mais j’ai pas trouvé la solution.

    Pour info le script est lancé de manière périodique.

    J’avais pensé à une tache de fond qui lance le script mais il doit y avoir plus simple ? Si je le lance par une tache de fond je devrai gérer le timer.

    Quel est la solution la plus « propre » pour faire ceci ? Qu’es ce qui se fait couramment en python ?

    Je vous remercie d’avance

    Séb

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Par défaut
    Une idée serait de regarder la liste des processus en cours d'execution et de voir si ton script python est deja lancé....

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 76
    Par défaut
    Un autre possibilité serait d'ouvrir un socket sur un port défini quand le prog est lancé.
    Pour savoir si le prog est lancé: essayer d'établir une connexion.

  4. #4
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Par défaut
    Citation Envoyé par CaptainChoc
    Une idée serait de regarder la liste des processus en cours d'execution et de voir si ton script python est deja lancé....
    Je n'ai pas trouvé une méthode unifiée permettant de le faire.
    La solution, j'imagine consiste donc à la lancer sous linux un ps auxw et sous windows tlist ou tasklist puis regarder s'il y a deux processus déjà en cours d'exécution.

    Séb

  5. #5
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Par défaut
    Citation Envoyé par naxelas
    Un autre possibilité serait d'ouvrir un socket sur un port défini quand le prog est lancé.
    Pour savoir si le prog est lancé: essayer d'établir une connexion.
    Merci pour ta réponse, je vais travailler sur cette solution, en plus ça me permettra d'avoir la possibilité plus tard de pouvoir passer des données via cette connexion. En mode client serveur, le serveur limitera à une connexion par client.

    Par contre, quelles sont les règles d'or pour avoir des scripts sécurisés avec une connexion réseau ?

    Séb

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 76
    Par défaut
    Citation Envoyé par vertical
    Par contre, quelles sont les règles d'or pour avoir des scripts sécurisés avec une connexion réseau ?
    Dans ce cas ci (pour savoir si le programme tourne ou pas), tu pourrais accepter les connexions seulement si elles proviennent de la même machine (localhost, 127.0.0.1).
    Sinon s'il n'y a pas de transfert de données, il n'y pas de risque d'attaque.

  7. #7
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Par défaut
    Citation Envoyé par naxelas
    Dans ce cas ci (pour savoir si le programme tourne ou pas), tu pourrais accepter les connexions seulement si elles proviennent de la même machine (localhost, 127.0.0.1).
    Sinon s'il n'y a pas de transfert de données, il n'y pas de risque d'attaque.
    Merci beaucoup

    Séb

    => FAQ: http://python.developpez.com/faq/?pa...es#UneInstance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier haarcascade en une seule exécution
    Par harold44 dans le forum OpenCV
    Réponses: 2
    Dernier message: 02/01/2012, 18h48
  2. Appel de plusieurs pages .js, mais une seule exécutée.
    Par andyroddick dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 02/07/2010, 16h17
  3. [Système] Une seule exécution possible !
    Par amestoche dans le forum Langage
    Réponses: 5
    Dernier message: 29/05/2007, 14h39
  4. Une seule instance de l'appli et exécuter une procédure
    Par Manic dans le forum API, COM et SDKs
    Réponses: 11
    Dernier message: 08/03/2006, 11h52
  5. fonction qui s'exécute qu'une seule fois sous Firefox
    Par la.sophe dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/03/2006, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo