use Win32::Daemon; Win32::Daemon::StartService(); while(SERVICE_STOPPED != Win32::Daemon::State()) {sleep(1);} Win32::Daemon::State( SERVICE_RUNNING );