[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ssh und maximale Laufzeit definieren


Hi Michael,

Am Samstag, 18. Oktober 2008 04:11 schrieb Michael Lestinsky:
> Am 17.10.2008 schrieb Markus Hochholdinger:
> > Jetzt frage ich mich (google wusste (noch) keine Antwort) ob es ein
> > Programm in der Form wie z.B. time oder nice gibt, welchem man eine
> > maximale Laufzeit fuer ein auszufuehrendes Programm mitgeben kann.
> > Wunschvorstellung waere: maxruntime -n 120 ssh .. .. ..
> Das laesst sich doch mit ein paar kleinen Zeilen C schnell loesen. Als
> kleine Hausaufgabe kannst du ja dieses Codefragment vervollstaendigen:

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 geloest:

----------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 fuer Deinen C-Code.


-- 
Gruss
                                                          \|/
       eMHa                                              (o o)
------------------------------------------------------oOO--U--OOo--
 Markus Hochholdinger
 e-mail  mailto:Markus@xxxxxxxxxxxxxxxxx             .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/