Programmlaufzeit begrenzen?

strex

Erfahrenes Mitglied
Hi,

ich starte aus einem PHP-Script das wget Programm.

Code:
wget --waitretry=30 --retry-connrefused -O /link -w 30 -c -t 50 ftp:/link > /dev/null

Wie schaffe ich dies, dass ich die Laufzeit des Programmes begrenzen kann? Muss man hierzu ein Kommando anhängen? Ich möchte gern das Programm auf 3 Stunden begrenzen und wenn es immr noch nicht fertig ist, soll es sich beenden.

Gibt es hierzu etwas?

Danke im vorraus!
 
Hi,

ich glaube nicht, dass es da schon eine fertige Möglichkeit gibt. Allerdings könntest du folgenden Workaround versuchen:

Verpacke den gesamten Aufruf in ein Shell-Skript, in dem du Aufrufzeitpunkt und Prozess-ID von wget speicherst. Anschließend lässt du eine Schleife laufen, bis Aufrufzeitpunkt plus drei Stunden erreicht ist, und dann beendest du den laufenden wget-Prozess von außen über kill.

Grüße, D.
 
also ganz einfach:

#!/usr/sh
wget --waitretry=30 --retry-connrefused -O /link -w 30 -c -t 50 ftp:/link > /dev/null &
PID=$!
sleep $(( 3600 * 3 ))
kill $PID
 
alternativ aufruf ueber einmalig ausgefuehrten Cronjob ... ;) dem kann man naemlich ne Laufzeit mitgeben.
 
Hi,

also klappt wohl noch nicht so ganz...wird durch php aufgerufen und das php script pausiert:

PHP:
system("/www/up.sh $dlserver $dir $otrkey $user $pw > /dev/null");

Mein sh script:

Code:
#!/bin/sh
wget --waitretry=30 --retry-connrefused -O /www/down/$3 -w 30 -c -t 50 ftp://$4:$5@$1/$2/$3 > /dev/null
PID=$!
sleep $(( 3600 * 3 ))
kill $PID

Was könnte falsch sein?


Danke!
 
Probier mal das:
PHP:
system("(/www/up.sh $dlserver $dir $otrkey $user $pw) > /dev/null &");

Gruss
olqs
 
Hmm, er beendet einfach das wget nicht nach 3 Stunden bzw. das script erkennt nicht das dieser schon beendet wurde. Sehr rätselhaft....
 

Neue Beiträge

Zurück