[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: Fri, 17 Oct 2008 22:11:50 -0400
- To: uugrn@xxxxxxxxxxxxxxx
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: =========== 8< 8< 8< ============ #include <sys/wait.h> #include <unistd.h> #include <signal.h> #include <stdio.h> pid_t child; void sighandler (int sig) { switch (sig) { case SIGALRM: printf("ELTERN: Alarm timeout.\n"); kill (child, SIGKILL); } } int main () { pid_t test; int stat, timeout = 1; // Hausaufgabe: Commandline verstehen... child = fork(); if (child > 0) { // Elternprozess signal(SIGALRM, sighandler); // Signalhandler registrieren alarm(timeout); printf ("ELTERN: Ja, mein Kind?\n"); test = wait(&stat); printf("ELTERN: Das Kind starb und gab %d zurueck\n", stat); return 0; } else if (child == 0) { // Kindprozess // Hausaufgabe: Irgendwas aus der Exec-Funktionsfamilie? // Dummycode: printf ("KIND: Mama!\n"); sleep (5); printf ("KIND: Ende.\n"); return 0; } else { // Fork war ein Griff ins Klo... return 2; } return 0; } =========== >8 >8 >8 ============ Ich habe es nur kurz durch den Compiler gejagt und getestet dass es keine Zombies erzeugt. Die globale Variable ist zwar eklig, aber ich bin zu muede fuer eine bessere Loesung. ;-) Bye, Michael -- http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/