Re: ssh und maximale Laufzeit definieren

Autor: Markus Hochholdinger <Markus_at_hochholdinger.net>
Datum: Tue, 21 Oct 2008 13:17:01 +0200
Hi Michael,

Am Samstag, 18. Oktober 2008 04:11 schrieb Michael Lestinsky:
> Am 17.10.2008 schrieb Markus Hochholdinger:
> > Jetzt frage ich mich (google wußte (noch) keine Antwort) ob es ein
> > Programm in der Form wie z.B. time oder nice gibt, welchem man eine
> > maximale Laufzeit für ein auszuführendes Programm mitgeben kann.
> > Wunschvorstellung wäre: maxruntime -n 120 ssh .. .. ..
> Das lässt sich doch mit ein paar kleinen Zeilen C schnell lösen. Als
> kleine Hausaufgabe kannst du ja dieses Codefragment vervollständigen:

vielen Dank. Allerdings hatte ich gehofft dass es soetwas schon fertig und 
erprobt gibt. Vorallem die Umleitungen von stdin/stdout und stderr muss man 
ja auch beachten und dass ssh auch wirklich beendet wird.

Da ich in C nicht so viel mache wie in der Shell und da diese Aufgabe nicht 
performant sein muss habe ich es mit einer bash-Funktion gelöst:

----------8<---------------------------------------
ssh-Deadline() {
        # default deadline in seconds
        SSHDEADLINE="${SSHDEADLINE:-30}"
        # start ssh
        ssh $SSHOPTIONS "$@" &
        # remember pid
        local PID="$!"
        # loop till deadline is reached
        for SSHCOUNTDOWN in $(seq 1 "$SSHDEADLINE")
        do
                # check if ssh is finished
                if [ ! -d "/proc/$PID" ]
                then
                        # get exit status from ssh
                        wait "$PID"
                        # return this function with exit status from ssh
                        return
                fi
                # wait one second
                sleep 1
        done
        # if ssh is still running, try to kill it
        test -d "/proc/$PID" && (kill "$PID"; sleep 1)
        # if ssh is still running, try to kill -9 it
        test -d "/proc/$PID" && (kill -9 "$PID")
        # return this function with exit status from ssh
        wait "$PID"
}
---------->8---------------------------------------

Trotzdem Danke für Deinen C-Code.


-- 
Gruß
                                                          \|/
       eMHa                                              (o o)
------------------------------------------------------oOO--U--OOo--
 Markus Hochholdinger
 e-mail  mailto:Markus_at_Hochholdinger.net             .oooO
 www     http://www.hochholdinger.net                (   )   Oooo.
------------------------------------------------------\ (----(   )-
                                                       \_)    ) /
                                                             (_/


--
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/

Empfangen am 21.10.2008

Dieses Archiv wurde generiert von hypermail 2.2.0 : 21.10.2008 CEST