Re: [ssfr] Finalement, ça concerne bien le shell...

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


On Thu, Jul 10, 2008 at 11:37:38PM +0200, Philippe Jacquot wrote:
> Pour en finir avec cette histoire, il semble aussi que bash ne  
> reconnecte pas le stdout de perl sur l'écran une fois que tee est mort,  

ce qui est assez logique! de quel droit un programme recupererait le
fd d'un autre? en repensant au post ou tu parlais de log, je me disais
que perl ecrivait bien mais trop tard pour tee.

J'ai donc légèrement complété mon exemple d'hier afin d'illustrer
clairement la conclusion a laquelle nous sommes tous arrivés.

$ strace -ewrite -op1 perl -lne 'BEGIN{
    $SIG{INT}=sub{print "out 1"; die "got 1"}
}' | strace -eread -op2 perl -lne 'BEGIN{
    $SIG{INT}=sub{print "out 2"; die "got 2"}
}'
[ctrl-c]
got 1 at -e line 1.
out 2
got 2 at -e line 1.

$ cat p1 
--- SIGINT (Interrupt) @ 0 (0) ---
write(2, "got 1 at -e line 1.\n", 20)   = 20
write(1, "out 1\n", 6)                  = 6

$ cat p2
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\n\0\000"...,
512) = 512
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@4\0\000"...,
512) = 512
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20H\0\000"...,
512) = 512
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1"...,
512) = 512
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\7\0"...,
512) = 512
read(3, "\236\270\271\\", 4)            = 4
read(0, 0x819d898, 4096)                = ? ERESTARTSYS (To be
restarted)
--- SIGINT (Interrupt) @ 0 (0) ---

cordialement

-- 
Marc Chantreux
BibLibre, expert en logiciels libres pour l'info-doc
http://biblibre.com

---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/