Script shell

Bonjour,

Je suis en train de réaliser un script qui doit ouvrir un message box avec Xdialog. Ce script est lancé par le demon hotplug sous openbsd afin de monter une clé USB.
Le truc c'est qu'il m'ouvre trois messagebox lorsqu'il est appelé par le demon et lorsque je le lance à la main, il ne m'en ouvre qu'une!! Est-ce que quelqu'un aurait une idée pour éviter que le script m'ouvre trois messagebox.
Voici le script:

#!/bin/sh

.$HOME/.profile
PATH=$PATH:/usr/X11R6/bin:/usr/local/bin
export PATH
DISPLAY=:0
export DISPLAY
Xdialog --title "MESSAGE BOX" \
--msgbox "La cle est valide,
elle va etre montee!!" 10 41
exit 1

8 réponses

  1. Avec ou sans, le problème reste identique...
    1. Contributeur
      Et à quoi ressemble ton daemon "hotplug" ?
    2. Que veux tu dire par à quoi ressemble le daemon hotplugd? Je suppose que c'est de l'assembleur...
    3. Contributeur
      Tu dis que tu appelles ton script via le daemon hoplug, je te cite "Ce script est lancé par le demon hotplug sous openbsd afin de monter une clé USB. "

      Donc normalement ce daemon est un script shell à l'intérieur duquel doit se trouver l'appel à ton script, non ?

      Donc à quoi ressemble ce script ?
    4. En fait, je pense que pour voir le code du daemon, il faut avoir un logiciel qui permette de lire le binaire (c'est installé par défaut avec l'OpenBSD). Bref, je fais un max de recherches pour avoir l'info... Pour le moment, j'ai pas trouvé sur le net. Je pense avoir compris comment ça fonctionne mais de quoi il retourne... j'avoue, j'aurais dû creuser avant, mais je ne pense pas être trop loin de la vérité avec les infos que je t'ai données...
      Dés que j'en sais plus, je te tiens au courant. Maintenant, ...
  2. Tout s'ouvre en même temps!
    1. Contributeur
      Essaie de mettre un verrou sur ton script (sans garantie) :

      #!/bin/sh
      
      .$HOME/.profile
      PATH=$PATH:/usr/X11R6/bin:/usr/local/bin
      export PATH
      DISPLAY=:0
      export DISPLAY
      
      if mkdir -p /tmp/verrou 2>/dev/null
      then
      Xdialog --title "MESSAGE BOX" \
      --msgbox "La cle est valide,
      elle va etre montee!!" 10 41
      rmdir /tmp/verrou
      exit 1
      fi
      
  3. Contributeur
    Salut,

    Est-ce que les 3 messages-box s'ouvrent simultanément ou séquentiellement ?
    1. Le démon hotplug est activé via le fichier rc.conf.local sous /etc. Ensuite, il est lancé à chaque démarrage du système. Il surveille l'activité du branchement matèriel.
      1. Bonjour dubcek,

        Cron est lancé au démarrage du système, à l'aide du fichier /etc/rc mais je suis pas sûr à 100%. Lorsque je fais un crontab -e, j'obtiens:

        SHELL=/bin/sh
        PATH=/bin:/sbin:/usr/bin:/usr/sbin
        HOME=/var/log
        #
        #minute hour mday month wday command
        #
        # sendmail clientmqueue runner
        */30 * * * * /usr/sbin/sendmail -L sm-msp-queue -Ac -q
        #
        # rotate log files every hour, if necessary
        0 * * * * /usr/bin/newsyslog
        # send log file notifications, if necessary
        #1-59 * * * * /usr/bin/newsyslog -m
        #
        # do daily/weekly/monthly maintenance
        30 1 * * * /bin/sh /etc/daily
        30 3 * * 6 /bin/sh /etc/weekly
        30 5 1 * * /bin/sh /etc/monthly
        #0 * * * * /usr/libexec/spamd-setup
        1. Contributeur
          hello
          comment est démarré le daemon ? cron, /etc/rc.local, ?
          1. Est-ce que cela pourrait être lié au droit du démon hotplug?