They are "open", so the service process has some kind of emulated STDOUT, but a stat on it will fail. If you close STDOUT, you can see the same behavior from a command-line. If you call another perl script (or itself) from the service script, that child process will work correctly.