Thread Start/stop a process (8 answers)
Opened by Emeto at 2012-01-26 10:58

Gast Emeto
 2012-01-26 10:58
#155674 #155674
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)

View full thread Start/stop a process