I cannot reproduce the problem (neither with bash nor with dash). I get
... read(3, "I am a.sh.......\n", 4096) = 17 read(3, "I am gonna die ........\n", 4096) = 24 --- SIGCHLD (Child exited) @ 0 (0) --- read(3, "", 4096) = 0 fstat(3, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 close(3) = 0 ...
(Perl 5.12.4, current versions of dash/bash as they ship with Ubuntu 11.10)
Update: err wait... you're probably not killing the sleep, but the shell only (in which case the sleep subprocess may survive (depending on the shell settings)). Try killing sleep directly, or kill the entire process group (use "ps fo pid,pgrp,comm" to find out, then "kill -15 -PGRP").
In reply to Re: parent process stuck in read(2) on pipe opened to child process using backtick
by Eliya
in thread parent process stuck in read(2) on pipe opened to child process using backtick
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |