Schrift
[thread]3240[/thread]

Loop: perl.exe wird laufend neu gestartet



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
perlbeg
 2007-05-30 22:12
#30405 #30405
User since
2006-06-28
14 Artikel
BenutzerIn
[default_avatar]
Hallo,
mein Perl-Programm läuft im Internet, nicht jedoch auf meinem lokalen Apache-System.
Ich habe inzwischen die neueste Apache-Version eingespielt, aber es hat sich nichts getan.

An der unten im Programm markierten Stelle wird laufend ein weiteres perl.exe gestartet (bis ich abbreche oder der Speicher überläuft), allerdings nur, wenn die Datei "nichtda.inc" nicht vorhanden ist.
Ist sie vorhanden, läuft das Programm korrekt. Ist die URL http://www.example.com nicht vorhanden, so läuft es ebenfalls richtig (und bringt die erwartete Fehlermeldung).



Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;

# .........

   my $url = "http://www.example.com/nichtda.inc";
   my $agent = LWP::UserAgent->new();
   my $req = HTTP::Request->new("GET" => $url); # neuer Request
   
   my $res = $agent->request($req);    # Bei diesem Befehl hakt es
     
   my $seite = $res->content();
   if ( $res->is_success() )
     {
      print $seite;
     }
   else
     {
      print qq(kein Zugriff auf Seite "$url");
}
  }


---
Modedit Gwendragon: Code-Tags eingefügt; Link verbessert
---\n\n

<!--EDIT|GwenDragon|1180553850-->
GwenDragon
 2007-05-30 22:43
#30406 #30406
User since
2005-01-17
14601 Artikel
Admin1
[Homepage]
user image
[quote=perlbeg,30.05.2007, 20:12]   my $url = "http://http://www.example.com/nichtda.inc";[/quote]
So? Mit doppeltem http:/// ? Kann nicht gehen ;)
Streich mal das erste http:///
perlbeg
 2007-05-30 22:58
#30407 #30407
User since
2006-06-28
14 Artikel
BenutzerIn
[default_avatar]
das war ein Kopierfehler, im Programm ist dies korrekt (im Internet läuft es!)
GwenDragon
 2007-05-30 23:50
#30408 #30408
User since
2005-01-17
14601 Artikel
Admin1
[Homepage]
user image
Bei dem Request wird eine perl.exe gestartet, wenn das Skript als CGI läuft, ja.

Beispiel mit mehr Info:
Code: (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
#!/usr/bin/perl -w
use strict;
use warnings;
use LWP::UserAgent;

# .........

  my $url = "http://www.example.com/nichtda.inc";
  my $agent = LWP::UserAgent->new();
  my $req = HTTP::Request->new("GET" => $url); # neuer Request
 
  my $res = $agent->request($req);    # Bei diesem Befehl hakt es
   
  my $seite = $res->content();
  if ( $res->is_success() )
    {
     print $seite;
    }
  else
    {
     print "content-type: text/plain\n\n",
    qq(kein Zugriff auf Seite "$url"), "\n",
    $res->status_line, "\n";
}


Auch auf meinem Apache läuft es lokal.

Allerdings liefert das Skript auch einen Fehler 500 zurück:
kein Zugriff auf Seite "http://www.example.com/nichtda.inc"
500 Can't connect to www.example.com:80 (connect: Unknown error)


Der Code ist ja etwas unvollständig.
Ich weiß ja nicht, was du so auf deinem Server konfiguriert hast und ob du das als CGI- oder mod_perl-Skript ausführst.\n\n

<!--EDIT|GwenDragon|1180555090-->
perlbeg
 2007-05-31 00:14
#30409 #30409
User since
2006-06-28
14 Artikel
BenutzerIn
[default_avatar]
Wenn die URL www.example.com nicht da ist, dann kommt auch bei mir diese korrekte Fehlermeldung.
Das Problem tritt nur auf, wenn ich eine URL angebe, die da ist, auf der aber die Datei nicht existiert.
Ich verwende CGI.
GwenDragon
 2007-05-31 00:52
#30410 #30410
User since
2005-01-17
14601 Artikel
Admin1
[Homepage]
user image
Selbst wenn ich dann testweise meine Domain www.gwendragon.de/nichtda.inc nehme, bleibt mein Skript ok und sendet mir einen 403 Fehler.

Was gibt denn dein Skript als Status zurück?
perlbeg
 2007-05-31 10:08
#30411 #30411
User since
2006-06-28
14 Artikel
BenutzerIn
[default_avatar]
[quote=GwenDragon,30.05.2007, 22:52]Selbst wenn ich dann testweise meine Domain www.gwendragon.de/nichtda.inc nehme, bleibt mein Skript ok und sendet mir einen 403 Fehler.

Was gibt denn dein Skript als Status zurück?[/quote]
Es kommt kein Status zurück, da ich immer abbrechen muss.
Es genügt dabei nicht Browser abzubrechen und zu schliessen, sondern ich muss den apache herunterfahren, sonst geht es weiter mit starten von perl.exe bis kein Speicher mehr verfügbar.
Im log steht dann x-mal, dass die Datei nicht gefunden wurde.
GwenDragon
 2007-05-31 14:18
#30412 #30412
User since
2005-01-17
14601 Artikel
Admin1
[Homepage]
user image
Welchen Apache hast du installiert?
Das stimmt doch was nicht mit der Konfiguration.
Gast Gast
 2007-05-31 18:37
#30413 #30413
Hast Du in Deinem Verzeichnis vielleicht noch eine .htaccess rumfliegen mit einer Redirect-Weiterleitung?
perlbeg
 2007-05-31 18:56
#30414 #30414
User since
2006-06-28
14 Artikel
BenutzerIn
[default_avatar]
[quote=GwenDragon,31.05.2007, 12:18]Welchen Apache hast du installiert?
Das stimmt doch was nicht mit der Konfiguration.[/quote]
Jetzt die neueste Version vom Mai.
Ich vermute auch, dass es an der Konfiguration liegt, aber wo?
In der neuen Apache-Version läuft das Programm zwar (es werden nicht fortlaufend perl.exe gestartet) aber es dauert minutenlang, bis die Anweisung
my $res = $agent->request($req);
durchgeführt ist.
Gibt es vielleicht einen Parameter, der die Response-Zeit bei Fehlern oder die Anzahl Lese-Versuche bei Fehlern festlegt?
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2007-05-30 22:12.