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 :

Exécution mono instance


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Par défaut Exécution mono instance
    Bonjour,

    Après plusieurs essais infructueux je viens vers vous pour trouver un moyen d'exécuter un script python en mono-instance.

    Merci de votre aide.

  2. #2
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Qu'est que tu appel un script mono instance....
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  3. #3
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    regarde par ici => les mutex sous windows

    Sinon, un peu moins pro, ton script verifie une valeur dans un fichier au lancement qui indique si ton script tourne, si il tourne tu arrêtes ton script, sinon tu modifies cette valeur, sans oublier de la reinitialiser à la fin de ton script.

    A toi de voir selon ton besoin.

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Par défaut
    Par mono-instance je veux dire que mon script ne puisse être exécuté qu'une seule fois à la fois. Donc si le script est déjà lancé ne pas pouvoir le relancer.

    J'ai essayé sous linux en exécutant un test sur les processus lancés. Cela fonctionne bien quand je lance le script depuis l'invité de ligne de commande, mais pas s'il est lancé automatiquement au démarrage de linux. De plus cela ne fonctionne pas sous Windows vu que j'utilise une commande linux.

    Voici le boût de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import commands
    process = commands.getoutput("ps x -o \"%a\" |grep 'mom_script.py'")
    result = re.findall("mon_script.py",process)
    if len(result) >1 :
       # le script est déjà lancé !
    J'avais pensé à l'idée d'un fichier flag créé au lancement du script, mais si mon script s'arrète de façon inopinée, le fichier n'est pas supprimé et impossible de relancer le script.

  5. #5
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    mais si mon script s'arrète de façon inopinée
    a toi de gérer l'imprevisible....

    Un peu plus tordu: ton script inscrit son heure de lancement dans un fichier, le remet a l'heure regulierement et un autre script lancé toutes les 5 mins verifie ce fichier et relance le script le cas echeant.

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Par défaut
    Oui j'essai bien de gérer les erreurs inopinées mais le script que j'ai trouvé ne fonctionne pas non plus :p Ce script devrait intercepter toutes les erreurs et les inscrire dans le fichier de log. Mais non il ne veut pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    import traceback
     
    	def MyExceptHook(type, value, tb):
    		dateHeureLog = datetime.datetime.now().strftime('%d/%m/%Y    %H:%M:%S') # date et heure du log
    		dateFichierLog = datetime.datetime.now().strftime('%Y%m%d') # date nom fichier log
    		nomFichierLog = dateFichierLog + "_TraceAllMode.log"  # nom du fichier log du jour
     
    		txtLog = traceback.format_exception(type, value, tb)
    		of = open(_gsLogPath + nomFichierLog,'a') # ouverture du fichier de log
    		of.write(txtLog + '---------------------------------------------------------\n') # ajout de la ligne en fin de fichier
    		of.close() # fermeture du fichier de log
     
    		sys.exit(2)
     
    	sys.excepthook=MyExceptHook

  7. #7
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864

Discussions similaires

  1. mono-instance en C
    Par bellevue dans le forum POSIX
    Réponses: 3
    Dernier message: 21/09/2010, 10h52
  2. [WD12] Application mono instance
    Par slick42 dans le forum WinDev
    Réponses: 6
    Dernier message: 28/10/2008, 16h44
  3. Réponses: 10
    Dernier message: 16/06/2008, 09h44
  4. Exécuter plusieurs instances d'Apache et migrer de PHP 4 à PHP 5, par Arnold Daniels
    Par Yogui dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 12/10/2006, 18h51
  5. Mono-instance en WIN32
    Par KsmoinO dans le forum Windows
    Réponses: 2
    Dernier message: 19/07/2006, 17h47

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