in reply to Parent Program

For control, I'd use a shell script seperate from the Perl program, probably one that uses the standard start-stop-daemon command. You can look at how the other processes on your computer are started and copy off of them, or most distributions have a "skeleton" init script to build new init scripts from. In Debian, that's located at /etc/init.d/skeleton.

After that, you still need a way to have the Perl program become a daemon (detach from the console) and write a PID file so start-stop-daemon can check to see if it's already running before starting it. There are many CPAN modules for this, one that does both is Net::Server::Daemonize, or you could use a combination of Proc::Daemon and Proc::PID::File or similar.