This sounds more like a unix problem than a perl problem. If you use another telnet client and issue the same command, do you get the same problem?
There are many reasons why the daemon might exit but the most likely one is that it detects the end of the telnet session. The kernel will normally send it a SIGHUP to inform it that it's controlling terminal (the pseudo-tty associated with the telnet session) has closed. You can guard against this by prefixing the unix command with [tt]nohup[/tt], which blocks the signal.
HTH,
fish
["]As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life was going to be spent in finding mistakes in my own programs.["]
--Maurice Wilkes, 1949