So I ran a few tests. It seems that the child can't read from the parent's STDIN. I presume this is the problem to which you are referring.
man 2 setpgrp explains
At any time, one (and only one) of the process groups in the session can be the foreground process group for the terminal; the remaining process groups are in the background.
I don't know what a session is, but adding setsid() appears to solve the problem.
In reply to Re^3: Killing process group run with IPC::Open3
by ikegami
in thread Killing process group run with IPC::Open3
by pm_sanchay
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |