I have been trying, unsuccessfully to redirect the STDOUT from my perl script running as a service with Win32::Daemon.
The method I have been using is to open the STOUT handle to a file, $FileName. See the code example below. Most of the service stuff has been copied from David Roth's website, but the crux is in the main body, " print "hello world\n"; " doesn't append anything to $FileName. Any suggestions? Phil Morley. use Win32::Daemon; my $FileName = "D:\\fred\\betty\\wilma\\wilma.txt"; open(STDOUT, ">>$FileName") || die; Win32::Daemon::StartService(); while (SERVICE_STOPPED != (my $State = Win32::Daemon::State())) { if (SERVICE_START_PENDING == $State) { Win32::Daemon::State(SERVICE_RUNNING); $PrevState = SERVICE_RUNNING; } elsif (SERVICE_STOP_PENDING == $State) { Win32::Daemon::State(SERVICE_STOPPED); } elsif (SERVICE_PAUSE_PENDING == $State) { Win32::Daemon::State(SERVICE_PAUSED); $PrevState = SERVICE_PAUSED; next; } elsif (SERVICE_CONTINUE_PENDING == $State) { Win32::Daemon::State(SERVICE_RUNNING); $PrevState = SERVICE_RUNNING; next; } elsif (SERVICE_STOP_PENDING == $State) { Win32::Daemon::State(SERVICE_STOPPED); $PrevState = SERVICE_STOPPED; next; } elsif (SERVICE_RUNNING == $State) { print "hello world\n"; # doesn't work! if (SERVICE_CONTROL_NONE != (my $Message = Win32::Daemon::QueryLastMessage(1))) { if (SERVICE_CONTROL_INTERROGATE == $Message) { Win32::Daemon::State($PrevState); } elsif(SERVICE_CONTROL_SHUTDOWN == $Message) { Win32::Daemon::State(SERVICE_STOP_PENDING, 25000); } else { Win32::Daemon::State($PrevState); } } } } # end of while loop Win32::Daemon::StopService(); _______________________________________________ Perl-Win32-Admin mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs