Windows Dienst mit Perl

fiber opticWin32::Daemon;
Win32::Daemon::StartService();
while (SERVICE_START_PENDING != Win32::Daemon::State()) {
sleep(1); }
Win32::Daemon::State(SERVICE_RUNNING);
while (1) {
open FOUT, „>>c:\\win32testserv.log“;
print FOUT localtime() . „\n“;
close FOUT;
sleep 3;
if (Win32::Daemon::State() == SERVICE_STOP_PENDING) {
open FOUT, „>>c:\\win32testserv.log“;
print FOUT „Jetzt ist aber Schluss\n“;
close FOUT;
exit 0;
} }
Win32::Daemon::StopService();
Win32::Daemon::State(SERVICE_STOPPED);
#Nennen wir das obenstehende Skript ‚test.pl‘ und sagen wir, das hier gehts weiter …

Perl startet Programm mit Timeoute

>Тюмень ландшафтrent a car bulgariaEnglish;
@Ruck= SystemCmd(”e: && cd\\.. && Test.bat”);
print @Ruck;
sub SystemCmd
{
eval {
local $SIG{ALRM} = sub { die “Alarm” };
alarm(10);
system($_[0].”>\\SystemCmd.dat”);
open FILE,”<\\SystemCmd.dat” or print “File fehler\n”;
@dat=<FILE>;
close FILE;
alarm(0);
};
if ($EVAL_ERROR=~ /Alarm/)  { return (”Timeout bei $_[0], Error, ERROR, Timeout Fehler!!”);  }
else                        { return hier gehts weiter …