# Programmlaufzeit begrenzen?



## strex (21. März 2008)

Hi,

ich starte aus einem PHP-Script das wget Programm.


```
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!


----------



## Dario Linsky (22. März 2008)

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.


----------



## OnlyFoo (22. März 2008)

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


----------



## strex (24. März 2008)

Danke, werde das mal testen. Geb dann bescheid.


----------



## Laudian (26. März 2008)

alternativ aufruf ueber einmalig ausgefuehrten Cronjob ...  dem kann man naemlich ne Laufzeit mitgeben.


----------



## strex (27. März 2008)

Hi,

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


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

Mein sh script:


```
#!/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!


----------



## olqs (28. März 2008)

Probier mal das:

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

Gruss
olqs


----------



## strex (28. März 2008)

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


----------

