close() dans bash (ou anysh)

Jeremy Monnet jmonnet at gmail.com
Thu Feb 23 15:43:08 CET 2006


On 2/23/06, Jeremy Monnet <jmonnet at gmail.com> wrote:
> On 2/23/06, Philippe Jacquot <philippe.j at sparx.com> wrote:
> > >> Je répète donc l'idée: lancer un script hébergé sur un mount, et au
> > >> sein de ce script (ou d'un fils), démounter le partage, faire 2, 3
> > >> trucs, puis le remonter.
> > >
>
> Si j'ai compris le fond du problème : tu lances un script et tu veux
> ensuite démonter l'endroit ou est ce script, donc ca rale ?
> Une idée (pas testée) est-ce que ca change quelque chose si tu
> "forkes" ton script ? Le probleme est que le script "utilise" un
> repertoire, mais si le script se finit, ca devrait bien se passer.
>
> Donc l'idée c'est un truc genre genre tu enregistres ton pid dans une
> variable, tu copies ton script ailleurs (dans le /tmp) et tu le
> relances depuis la en tache de fond (enfin il se copie et se relance
> tout seul) : le père meurt, le fils (pid différent du pid enregistré,
> ou alors repertoire différent du père) occupe le /tmp, et tu dois
> pouvoir démonter ta partition.
>

J'arrive a un résultat  avec ca (et oui, c'est du bash a cause de ca
${0##*/} ) :
#!/bin/bash

if test -n $PID
then
        sleep 2
        echo "je suis le fils" > logfile
        lsof /root/test_fork_script/mnt/ >> logfile
        umount /root/test_fork_script/mnt/
        if test $? -eq 0
        then
                echo "est demonte ?" >> logfile
        else
                echo "erreur ?" >> logfile
        fi
fi

if test -z $PID
then
        export PID=$$
        cp $0 /tmp
        cd /tmp
        ./${0##*/} &
fi
exit

Ca me marque un message d'erreur, mais c
Jeremy
--
Linux Registered User #317862
Linux From Scratch Registered User #16571
Please do not send me .doc, .xls, .ppt, as I will *NOT* read them.



More information about the Shell mailing list