[GELÖST] Skript sekündlich zwischen 5 und 19 Uhr starten

HobbyStern

Aktives Mitglied
Mitglied seit
5 Dez 2005
Beiträge
1,844
Punkte für Reaktionen
0
Punkte
36
Hallo Zusammen,

ist es möglich einen Befehl (Skript welches einige Dateien verschiebt) sekündlich auszuführen und das ganze auch nur zwischen 5 und 19 uhr ?

Per Cron geht es nur minütlich, ich habe das ganze nun so gelöst das es in einer schleife läuft welche am abschluss einfach ein sleep 1 ausführt.

Das kann ich aber nicht mehr um 19 uhr stoppen - es sei denn ich kenne die pid, oder mache es per pkill, aber das wahre ist es nicht.

Hat jemand Rat ?

Grüsse, Stefan
 
Zuletzt bearbeitet:
es sei denn ich kenne die pid
Code:
echo $$ > /var/run/foobar.pid
(in der Annahme, dass es sich um ein sh-kompatibles Skript handelt; das Ausschreiben der PID in eine Datei sollte aber in jeder anderen Sprache auch möglich sein.)

Hilft dir das?

Andreas
 
Denke doch mal ganz einfach, simpel und logisch. Du hast es doch schon fast gelöst.

Bau in Dein Skript mit dem Sekundenschlaf einen Schleifenzähler bis 59 ein, der das Skript dann nach 59 Sekunden beendet. Dann kannst Du dieses Skript minütlich per cron neu starten und in der crontab auch den Zeitrahmen 5-19 Uhr vorgeben.​
 
@Beta

Recht hast Du, ich hatte mir diese Idee auch schon durch den Kopf gehen gelassen, jedoch hatte ich ein wenig Bauchweh bei dem Gedanken das sich das Skript mal festfrisst - dann würde ich es jede Minute neu starten....

@buehmann

Dieser Ansatz ist mir nun nicht wirklich neu, ich kenne das ganze nun nur mit touch, jedoch muss ich ehrlich gestehen dass ich nicht weiss wie ich einen prozess anhand seiner /var/run Process-ID killen kann...

Sagen wir mal ich erstelle am Anfang des Skriptes (btw ja, es ist "#!/bin/sh") mit touch /var/run/irgendwas.pid das pid-file.

Wie kann ich dem Skript damit den Strick um den Hals legen ?

Dank für die Hilfe sei euch gewiss !

Stefan
 
Sagen wir mal ich erstelle am Anfang des Skriptes (btw ja, es ist "#!/bin/sh") mit touch /var/run/irgendwas.pid das pid-file.

Wie kann ich dem Skript damit den Strick um den Hals legen ?

In $pidfile muß natürlich der richtige Name abgelegt sein:

Code:
if test -f $pidfile ; then
  kill -1 `cat $pidfile`
  kill -15 `cat $pidfile`
  rm -f $pidfile;
else
  echo "pidfile $pidfile not found! Cannot stop script."
fi;

Übrigens habe ich diese Lösung bei Google mit der Suche nach "kill pid-file" gefunden ;)
 
Danke Beta,

ich habe auch das Orakel befragt, lediglich bin ich über eine andere Lösung gestolpert, ich suche noch zu lang und zu deutsch :) :

Google Suche : "killen eines prozesses pid"
Ich denke ich mache das so mal testweise, beta, teilst Du denn meine bedenken bezüglich des "Außer Kontrolle geratenden Skripts"/Zombie ?

jedoch hatte ich ein wenig Bauchweh bei dem Gedanken das sich das Skript mal festfrisst - dann würde ich es jede Minute neu starten....
Grüsse und Danke,

Stefan

EDIT : Ich denke das ist mein Grund Linux zu mögen, das man immer noch etwas Neues in den einfachsten Dingen finden kann..!
 
Ein korrekt geschriebenes und getestetes Skript unter Linux frißt sich nicht fest.
Solche Probleme kenne ich nur in bunten Betriebssystemen aus Redmonder Fensterbaufirmen.
 
Solved

Recht hast Du, daher kenne ich solche Erlebnisse auch zu genüge...

Ich denke ich werde das ganze mit Cron machen, obwohl die Idee mit dem Zähler auch meine Weise gewesen wäre...bin wohl noch zu sehr BlueScreen geschädigt... :lach:

Ich Danke euch Beiden und wünsche ein ruhiges Wochenende...!

Grüsse, Stefan
 

Zurzeit aktive Besucher

Neueste Beiträge

Statistik des Forums

Themen
244,858
Beiträge
2,219,651
Mitglieder
371,572
Neuestes Mitglied
#Kuddel#
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.