Hi,
ich benötige einen Befehl, wie ich eine kompilierte C-Datei nur eine bestimmte Zeitspanne laufen lassen kann, z.B. 2 Minuten, d.h dass das Programm exakt 2 Minuten läuft und dann beendet wird.
Google und die SuFu habe ich schon gefragt.
Hi,
ich benötige einen Befehl, wie ich eine kompilierte C-Datei nur eine bestimmte Zeitspanne laufen lassen kann, z.B. 2 Minuten, d.h dass das Programm exakt 2 Minuten läuft und dann beendet wird.
Google und die SuFu habe ich schon gefragt.
Wäre es ein Ansatz, den Programmaufruf in ein kleines Bash-Skript einzubinden, welches nach einer Wartezeit (z.B. "sleep 120" oder ein anderer Timing-Befehl) einen kill sendet?
Das ist dann halt nicht millisekundengenau, aber sekundengenau wird es schon sein.
Die sauberste Lösung wäre vermutlich, das in das Programm einzuprogrammieren. Hast du denn die C-QUellen?
Greetz
Thomas
Ja, habe auch die Quellen dazu. Bräuchte es so genau wie möglich.
Wie das in C aussieht, kannst du vielleicht im Programmierforum erklären lassen. Vieleicht man SuFu und Google befragen Das Thema kommt immer wieder.
Aber letztlich mußt du halt in der Hauptschleife regelmäßig die Zeit abfragen und beizeiten die Schleife verlassen.
Und wie genau man das bei einem Nicht-Echtzeit-Linux hinbekommt weiss ich nicht.
AUf der Shell kannst Du es GROB so machen:
Das Programm aufrufen und in den Hintergrund schieben
/mein/programm &
Dann 120sek schlafen
sleep 120
Dann den zuletzt gestarteten Hintergrundprozess killen
kill $!
Grüße
Thomas
Geändert von tschloss (20.12.05 um 22:04 Uhr)
Das wirst du vermutlich nicht hinbekommen. Auch wenn bei dir exakt +-1 ns ist.Zitat von VanHelsing
Gentoo & Ubuntu User
Kleine Verbesserung noch:
PID=/mein/Programm &
...
kill $PID
Noch schöner wäre natürlich, wenn vor dem kill geschaut wird, ob $PID noch läuft, denn vielleicht hat es ja schon von alleine aufgehört - in diesem Fall würde kill eine Fehlermeldung bringen - oder wenn's der Zufall so will: einen ganz anderen Prozess abschießen, der in der Zwischenzeit $PID hat.
¡Nuestro amigo... el Computador!
Danke euch allen. Mal sehen, wie gut das klappt.
Lesezeichen