shellscript per cron, wie stoppen?

steinex

Well-Known Member
Moin,

mal ne Frage wie ihr folgendes lösen würdet. Ich habe ein Shellskript was ein Programm in einer Endlosschleife immerwieder aufruft, sobald es abstürzt (das ist auch erforderlich, da es das Programm öfter tut). Das ganze sieht so aus:
Code:
#!/bin/sh
while /usr/bin/true
do
./sc_trans_linux
sleep 10
done

Das funktioniert auch soweit wunderbar. Nun ist aber die Anforderung, das sc_trans_linux nur noch von Nachts 22 Uhr bis morgens um 9 läuft. Nun zur eigentlich Frage:

Wie ich das Shellscript starte ist ja eigentlich relativ klar - per cron. Nur wie beende ich es? Wenn ich ein "killall sc_trans_linux" als cronjob zum beenden machen würde, würde das Shellscript ja dafür sorgen es sofort wieder zu starten.

Ich freu mich auf eure Vorschläge, vielen Dank im voraus.
 
Also falls sich der Exitcode zwischen dem "Absturz" und dem killall unterscheidet, könntest du diesen in die while-Bedingung einbauen. Oder vorher das Shell Script killen und dann das eigentliche Programm...dann startet nix mehr ;-)
 
achso, die endlosschleife ist in einem anderen script.. dann töte doch einfach das script mit der endlosschleife ^^'
 
oenone schrieb:
achso, die endlosschleife ist in einem anderen script.. dann töte doch einfach das script mit der endlosschleife ^^'

killall sh, oder wie hast Du dir das vorgestellt? :) Ich bin ehrlichgesagt leider immer noch nicht wirklich dahinter, wie ichs nun löse.
 
also steini wie im irc gesagt
ich wuerde es sonst einfach so machen erst die zeit checkeen ob sie zwischen 22 und 9 uhr liegt und wenn ja starte das script ansonsten schlaf weiter.
fertsch
 
oenone schrieb:
das script hat doch wohl auch nen namen, oder?

Richtig, nur wenn das Skript läuft heisst der Prozess sh, nicht meinscript.sh - das ist ja das Problem. Habs nun aber gelöst, für alle die's interessiert:

Sobald das Script 22 Uhr abends mit cron startet, schreibt es seine PID in ein File. Morgens um 9 läuft dann wiederrum ein Cronjob der einfach die PID aus der File killt - so einfach kanns gehen *g*

Trotzdem vielen Dank für eure Mühe.

Frank
 
Zurück
Oben