[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ssh und maximale Laufzeit definieren
[Thread Prev] | [Thread Next]
- Subject: Re: ssh und maximale Laufzeit definieren
- From: Michael Lestinsky <michael@xxxxxxxxxxxx>
- Date: Wed, 22 Oct 2008 10:44:48 -0400
- To: uugrn@xxxxxxxxxxxxxxx
Am 17.10.2008 schrieb Michael Lestinsky: Eine Frage haette ich zu meinem Code aber, ich bin mit dem kill() im Signal handler nicht zufrieden und wollte es eigentlich anders loesen. Das wait() in folgendem "Eltern"-Teil verhaelt sich nicht so, wie ich die Manpage verstehe: > // Elternprozess > signal(SIGALRM, sighandler); // Signalhandler registrieren > alarm(timeout); [...] > test = wait(&stat); Was hier passiert ist, dass das wait tatsaechlich wartet, bis das Kind von alleine terminiert. In der Manpage lese ich zu wait(2) jedoch: The wait() function suspends execution of its calling process until status information is available for a terminated child process, or a sig- nal is received. wait() sollte also auch auf ein eingehendes Signal hin terminieren. Das Signal geht auch vor der Beendung des Kindprozesses ein, was man leicht durch printf-Debugging im Signalhandler zeigen kann. wait() terminiert aber nicht auf das Signal hin und mir ist nicht klar, warum. Ich habe diesen Code auf zwei verschiedenen BSD-Derivaten getestet, auf denen sich der Code identisch verhaelt. Was mache/verstehe ich falsch? Bye, Michael -- http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/