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

Linux Discussion :

Contrôle d'exécution de processus


Sujet :

Linux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Contrôle d'exécution de processus
    Bonjour,

    Quelle est la manière la plus simple d'empêcher qu'un shell lancé toutes les minutes par cron ne s'exécute une seconde fois tant que le premier lancement n'est pas terminé.
    Merci

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 289
    Points : 342
    Points
    342
    Par défaut
    Au lancement de ton script, tu testes la présence d'un fichier particulier (de tête, if [ -e $fichier]). S'il existe, tu t'arrêtes. Sinon, tu le crées (touch $fichier), puis tu fais ton petit bazar. Une fois que tu as finis, tu effaces le fichier, et voila.

    Evidemment, il faut que ledit fichier soit dans un coin accessible à l'utilisateur qui lance le script, et pas à tout le monde.
    Et tu dois faire attention à ce que ton script ne puisse pas se terminer sans avoir effacé le fichier de verrouillage, sinon tu devras revenir l'effacer à la main.

    Il y a aussi la possiblité de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps aux |grep -v grep |grep -q $0
    et de tester le code de retour. Mais pour un truc lancé toutes les minutes, je préfère la solution du fichier. Faire un ps/grep crée 3 processus supplémentaires à chaque lancement. C'est pas grand chose, mais si on peut l'éviter, ce n'est pas plus mal.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    autre solution :
    ne pas utiliser la crontab mais le script de lancement rc.local (1 seul fois le script sera lancer au boot) puis dans le script en questions 2 solutions :
    - terminer par un sleep 60 : la commande sleep ne prend pas de temp CPU
    - a la fin du script le relancer via la commande at (at now + 1 minutes mon script)

    de cette façon il n'y aurra jamais 2 lancements .....
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre aide

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

Discussions similaires

  1. Arguments pour et contre Access ?
    Par bottura dans le forum Sondages et Débats
    Réponses: 240
    Dernier message: 23/03/2018, 23h25
  2. La meilleure protection contre le piratage des logiciels ?
    Par iubito dans le forum Débats sur le développement - Le Best Of
    Réponses: 184
    Dernier message: 23/12/2008, 13h35
  3. Protéger une disquette contre la copie
    Par benzaza dans le forum Assembleur
    Réponses: 20
    Dernier message: 16/01/2005, 10h42
  4. Web contre client/serveur que choisir??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 41
    Dernier message: 24/01/2004, 15h53
  5. Algo "Contre l'ordinateur"
    Par Black-Ghost dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/10/2002, 10h55

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