Thread Start/stop a process
(8 answers)
Opened by Emeto at 2012-01-26 10:58
Hallo an alle,
Von meinem Perl-Skript soll ich ein Exe starten und nach gewisser Zeit, wenn das Programm noch nicht fertig ist, soll das Skript es killen. Ich habe die folgende Funktion: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 sub StartEditor() { eval { local $SIG{ALRM} = sub { die "alarm\n" }; alarm 60; #start the Editor exe my $commandline='"Editor.exe" /CAS-FILE=$file'; if ( (my $retcode = system($commandline)) != 0) { print (STDERR "'$commandline' returned non-ok confirmation code '$retcode'\n"); } alarm 0; }; if ($@) { # timed out print "StartEditor(): TIME OUT!\n"; #kill Editor.exe system ('taskkill /F /IM "Editor.exe"'); die #unless $@ eq "alarm\n"; } else { # didn't timeout print "StartEditor(): Finished Editor.exe\n"; } } Meine Frage ist, ob es eine bessere Weise gibt, das Exe zu killen. Externe Kommandos wie "cat" oder "ps" gibt es leider unter Win nicht:( Mit der "kill" Funktion komme ich nicht zurecht. Danke im Voraus. VG Emeto Last edited: 2012-01-26 11:02:43 +0100 (CET) |