in reply to SOAP::Lite and Win32::Daemon

You may consider Activestate's perlapp or perlsvc command. I've been successful using perlapp and compiling a SOAP::Lite application as a gui and running it in user context(at startup). I.e.

use SOAP::Transport::HTTP;
use MyMod;
$daemon = SOAP::Transport::HTTP::Daemon
-> new (LocalPort => 6000, ReuseAddr => 1)
-> dispatch_to('MyMod')
;
$daemon->handle;

I'm not sure how this works using Win32::Daemon (I've had problems with this package before as it can be confusing how to apply it correctly)

If you're using Win32 ithreads you may want to set Win32::SetChildShowWindow(0) in each thread when calling system or backticks.

I would keep clear of RPC::PlServer which is not memory friendly (probably due to Net::Daemon and ithreads!)