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

Langage Perl Discussion :

Exécution de programme


Sujet :

Langage Perl

  1. #1
    Invité
    Invité(e)
    Par défaut Exécution de programme
    Je réalise un programme Perl qui va être déclenché par un CRON toutes les 2 min.

    Je voudrais être sur que le programme ne s'exécute pas alors qu'il est peut être encore lancé.

    Je le fais déjà en plaçant un fichier "tampon" dans mon /tmp/ que je pose au début et que je retire à la fin de l'exécution du programme.

    Il y a aussi la possibilité de faire un `ps uax` pour vérifier si je trouve le programme dans la liste.

    Mais je trouve ces 2 solutions un peu limite, dans le premier cas, le fichier tampon risque de me faire chauffer le disque dur à la longue (CRON toutes les 2min) et le second, le ps uax, je trouve ça limite ...

    Existerait il une primitive ou un module permettant d'effectuer cette vérification ? ou une idée pour faire cela différemment ?

    Sinon, je m'en tiendrai au `ps uax`, je sais pas trop si c'est vraiment bon pour un disque dur de se faire harceler toutes les 2 minutes de la sorte.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    La meilleure solution, c'est le fichier de lock (dans le /tmp, ou dans /var/lock). C'est plus sur.

    Et A mon avis, ce n'est pas du harcèlement de disque. Je pense que la simple lecture de ton fichier perl coutera plus cher en temps accès disque que l'écriture/unlink de ton fichier. D'une par un disque dur supporte beaucoup plus d'écriture à la minute que ça (dieu merci), et d'autre part, il est possible que les opérations ne soient faites qu'en mémoire.

  3. #3
    Invité
    Invité(e)
    Par défaut
    "La meilleure solution, c'est le fichier de lock (dans le /tmp, ou dans /var/lock). C'est plus sur."

    Je ne vois pas bien la différence par rapport à ce que je fais ?
    Ou alors lors de l'exécution d'un programme, un fichier de lock se créé automatiquement ? (désolé pour mon manque de culture linux )

    Le cron va s'exécuter toutes les 2 mins sur le script.
    Le script ne prend pas plus de 1 à 3 secondes d'exécution, mais comme dans le script, je fais un wget vers une url et un snmpwalk, si la machine prend du temps à répondre c'est risqué ? ou alors le plus sur serait un timeout à 10 sec quoi qu'il arrive, j'éviterais ainsi le test de présence du fichier ?

    Je crains plus sur de vieux disques durs en fait qui ne bouge quasiment plus, ils n'écrivent rien ... tout se fait en mémoire, type routeur ou autre, ou via des liens nfs, ajouter ce petit jeton, me fiche les jetons .

Discussions similaires

  1. Exécuter un programme des que le poste est allumé
    Par edzodzinam dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 08/02/2006, 04h08
  2. Comment exécuter un programm
    Par Murieyaya dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 10h50
  3. Réponses: 5
    Dernier message: 29/11/2005, 17h35
  4. Comment exécuter un programme externe ?
    Par spikto dans le forum Langage
    Réponses: 12
    Dernier message: 27/06/2005, 16h18
  5. SendMessage bloquant l'exécution du programme
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 03/05/2003, 19h26

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