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. Est-ce que cela pourrait être lié au droit du démon hotplug?
    1. Contributeur
      hello
      comment est démarré le daemon ? cron, /etc/rc.local, ?
      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. 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. Contributeur
            Salut,

            Est-ce que les 3 messages-box s'ouvrent simultanément ou séquentiellement ?
            1. 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
                
            2. 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, ...