Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11562[/thread]

thread beenden ohne Script zu killen



<< >> 3 Einträge, 1 Seite
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!!!
RalphFFM
 2008-04-03 12:17
#107790 #107790
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Wenn sonst niemand einen besseren Vorschlag hat, dann schreib ich jetzt mal.
Vielleicht hilft
http://www.thomas-fahle.de/pub/perl/Diverses/Timin...
dem Ziel ein Stückchen näher zu kommen.
SaschaTen
 2008-04-03 18:08
#107821 #107821
User since
2007-10-15
28 Artikel
BenutzerIn
[default_avatar]
Danke für deine Antwort, habe nun nen anderen Weg gefunden.
Man kann dem Scanner ein Timeout mitgeben... war ein bissel versteckt und nicht da zu finden wo ichs gesucht habe..
-----------
Wer Rechstschreibfehler findet, darf diese behalten und bei Ebay versteigern!!!
-----------
Nidar mied där Rächtschraibunk!!!
<< >> 3 Einträge, 1 Seite



View all threads created 2008-04-03 01:15.