http://www.perlmonks.org?node_id=104174


in reply to Changing tty's in perl

The posix way to obtain a new controlling tty is to first get rid of the old one, as you've outlined, and then open a new one; the first one opened becomes the new controlling tty. You can't use "/dev/tty" for this purpose of course, you'd have to open a real tty device. These are /dev/pty*, /dev/console, and devices corresponding to actual serial ports.

Is the program insisting on a tty, or just a valid stdin? Instead of just closing stdin/stdout/stderr you can try opening them to /dev/null, and see if that is sufficient. If it needs a tty, one can often use /dev/console.