in reply to forking script hangs

You forgot to close the $wh on parent side, so the pipe stays open forever.

A close $wh; before the while (<$rh>) ought to fix it.

Oh, and please do note that the writes aren't atomic—no guarantee the reports won't intermingle.

Replies are listed 'Best First'.
Re^2: forking script hangs
by afoken (Chancellor) on Jun 10, 2015 at 21:46 UTC

    ... and fork lacks an error check, too.

    (Yes, fork can fail. POSIX documents EAGAIN (temporary lack of resources or resource limits exceeded) and ENOMEM (out of memory). Linux also documents ENOSYS (not supported, e.g. on MMU-less hardware). The *BSDs follow POSIX.)

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
      ahh I was thinking incorrectly the parent should stop blocking when no more messages in the pipe sort of like when you read a socket. Thanks for clarifying and links.