Thread thread beenden ohne Script zu killen (2 answers)
Opened by SaschaTen at 2008-04-03 01:15

SaschaTen
 2008-04-03 01:15
#107771 #107771
User since
2007-10-15
28 Artikel
BenutzerIn
[default_avatar]
Hallo Leute,

ich habe ein kleines Problem, ich habe ein Script in dem Threads aufgerufen werden. In diesen Threads möchte ich ein Programm aufrufen und das im Falle das es nach X Sekunden nicht fertig ist killen.

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
26
27
28
29
use threads;
...
sub complete_host #<-Vaterthread
{
  my $installdir = $_[0];
  my $threadnr   = $_[1];
  while($hosts->pending() > 0)
  {
    my @temp = split(/;/, $hosts->dequeue_nb());
    my $host = Host->new(\@temp);
    my $thread    = threads->new(\&scan_host, $host->get("hostip"), $threadnr); #<-Kindthread, startet nmap
       $thread->detach();
    my $timestamp = time();
    my $now       = "";
    my $remain    = ""; 
    do
    {
      $now = time();
      $remain = $now - $timestamp;
      if($remain > 60)
      {
        print "Subthread in Thread ".$threadnr." wird gekillt!\n";
        $thread->exit('STOP');
#        $thread->kill();
      }
    }
    while($thread->is_running());
    #werte die XML aus bzw scanne neuen Host
}


Nun habe ich das Problem, dass so wie ich kill im Kindthread aufrufe, Sich der Vaterthread auch verabschiedet...
Gibt es ne Möglichkeit das Kind zu stoppen ohne den Vater in Mitleidenschaft zu ziehen?

Oder eine Möglichkeit ein programm zu starten dieses aber nur eine gewisse Zeit laufen zu lassen. Ungefähr so starte(prog xyz, laufzeit 30s);

Danke für eure Hilfe!
-----------
Wer Rechstschreibfehler findet, darf diese behalten und bei Ebay versteigern!!!
-----------
Nidar mied där Rächtschraibunk!!!

View full thread thread beenden ohne Script zu killen