Seite 1 von 1

Cronjob vorübergehend deaktivieren

Verfasst: Mo 3. Okt 2016, 14:23
von Charles Darwin
Gibt es eigentlich eine Möglichkeit crond vorübergehend zu deaktivieren?
Ich verwende nämlich einen Befehl in crond, um die (widerspenstige) Festplatte schlafen zu legen. Wird alle 5min ausgeführt.
Leider führt das dazu, dass beim Abspielen von einem Film, das Bild alle 5min stehenbleibt.

Was muss ich eintragen in die movieplayer.start bzw end? In der recording.start/end würd es auch nicht schaden ;-)

Danke
CD

Re: Cronjob vorübergehend deaktivieren

Verfasst: Mo 3. Okt 2016, 15:36
von DrStoned
Probiere mal
killall crond

Re: Cronjob vorübergehend deaktivieren

Verfasst: Mo 3. Okt 2016, 19:12
von Charles Darwin
Danke...aber crond soll ja nach der Aufnahme bzw. dem Movieplayer wieder aktiv sein.

Hab crond im NI-Menü auf aus gestellt.
In der standby.on steht nun

Code: Alles auswählen

/etc/init.d/crond start
So sollte beim Ausschalten crond aktiv sein und bleiben.

in der movieplayer.start / recording.start steht

Code: Alles auswählen

/etc/init.d/crond stop
in der movieplayer.end / recording.end steht

Code: Alles auswählen

/etc/init.d/crond start
Konnte es noch nicht testen, aber ich glaube das Problem ist, dass wenn ich im NI-Menü eine Einstellung bzgl crond vornehme, dann wird ja ständig gecheckt ob (ich glaub es war) in var/etc eine .crond-Datei liegt oder nicht...und dementsprechend crond de- o. aktiviert.
Hab ich das richtig in Erinnerung?

Wenn das stimmt, dann müsste ich in den movieplayer/recording/standby-Dateien einen Befehl hinzufügen, der diese .crond-Datei im entsprechenden Ordner erstellt bzw. löscht.

Richtig? :)

Re: Cronjob vorübergehend deaktivieren

Verfasst: Mo 3. Okt 2016, 19:40
von Charles Darwin
Ich glaub, so sollte es gehen.
Hab in die recording.start u. movieplayer.start folgendes eingefügt

Code: Alles auswählen

rm /var/etc/.crond
und in die recording.end u. movieplayer.end

Code: Alles auswählen

touch /var/etc/.crond
Im NI-Menü crond auf ein.

Werde es später testen.

Re: Cronjob vorübergehend deaktivieren

Verfasst: Di 4. Okt 2016, 20:44
von vanhofen
Richtig wäre:
In den .start-Scripten:

service crond stop
rm -f /var/etc/.crond

In den .end-Scripten:

touch /var/etc/.crond
service crond start

Re: Cronjob vorübergehend deaktivieren

Verfasst: Di 4. Okt 2016, 21:42
von vanhofen
Noch richtiger wäre es, du würdest beim Start des Movieplayers ein Flagfile /tmp/.disable-hdd-sleep erstellen und deinen Cronjob darauf regieren lassen.

Also in dem Script, welches deine Platten einschläfert, dass sowas hier:

Code: Alles auswählen

if [ -e /tmp/.disabe-hdd-sleep ]; then
        exit 0
fi
In den end-Scripts löschst du das Flagfile wieder.

Re: Cronjob vorübergehend deaktivieren

Verfasst: Mi 5. Okt 2016, 22:58
von Charles Darwin
Danke dir vanhofen :)
Hab die zusätzliche Zeile mit dem service crond start/stop in recording u movieplayer start/end hinzugefügt.

Bei deiner zweiten Variante bin ich im Mittelteil irgendwie ausgestiegen. ;)

Hab ja kein Script. Hab nur eine Datei mit dem Namen root in /var/spool/cron/crontabs/ erstellt mit dem Inhalt

Code: Alles auswählen

*/5       *       *       *       *       sg_start --stop /dev/sda1
Das hatte eigentlich jahrelang in der Tank mit der eingebauten (nicht-linux-kompatiblen) Festplatte funktioniert.
Seit ich wegen der Sch...-Sky-Umstellung von Satellit u. Sky-Abo auf Kabel u. Kabelplus.at-Abo gewechselt habe und dazu eine Link v2 Kabel erstanden habe, hatte ich das Phänomen, dass alle 5min das Bild stand. Aber vielleicht funktionierte das Aufwachen während dem Recording u. Abspielen mit der eingebauten HDD in der Tank einfach schneller...

Re: Cronjob vorübergehend deaktivieren

Verfasst: Mi 5. Okt 2016, 23:07
von Charles Darwin
Also in die root-Datei dann das?

Code: Alles auswählen

if [ -e /tmp/.disabe-hdd-sleep ]; then
        exit 0
        else
*/5       *       *       *       *       sg_start --stop /dev/sda1        
fi
Und in die movieplayer/recording.end das?

Code: Alles auswählen

rm -f /tmp/.disable-hdd-sleep
Und in die movieplayer/recording.start das?

Code: Alles auswählen

touch /tmp/.disable-hdd-sleep
Funktionieren tun übrigens die obigen Varianten mit der .crond-Datei auch schon, die Platte schläft tief ;-)
Sowohl mit und ohne service-crond-start/stop-Zeile (aber das ist sicher die professionellere Lösung).

Re: Cronjob vorübergehend deaktivieren

Verfasst: Do 6. Okt 2016, 21:05
von vanhofen
Völlig faltch. :)

Du erstellst dir ein Script namens /var/bin/hdd-sleep.sh (chmod 755) mit folgendem Inhalt:

Code: Alles auswählen

#!/bin/sh
if [ ! -e /tmp/.disabe-hdd-sleep ]; then
        sg_start --stop /dev/sda1
fi
In movieplayer/recording.start trägst du folgendes ein:

Code: Alles auswählen

touch /tmp/.disable-hdd-sleep
Und in movieplayer/recording.end das hier:

Code: Alles auswählen

rm -f /tmp/.disable-hdd-sleep
Dann musst du noch den Cronjob ändern in:

Code: Alles auswählen

*/5       *       *       *       *       /var/bin/hdd-sleep.sh

Re: Cronjob vorübergehend deaktivieren

Verfasst: Fr 7. Okt 2016, 10:45
von Charles Darwin
Vielen Dank, vanhofen!!!!
Werd deine Anleitung gleich so umsetzen. :)

Ciao
CD

Re: Cronjob vorübergehend deaktivieren

Verfasst: Mo 10. Okt 2016, 00:50
von vanhofen
Und? Hat alles geklappt?

Re: Cronjob vorübergehend deaktivieren

Verfasst: Mo 10. Okt 2016, 18:32
von Charles Darwin
Super!!!
Läuft jetzt alles wie es soll und die externe Festplatte mit Schlafstörungen schläft jetzt auf Befehl tief und fest... :)

Danke dir für den tollen Support! :)

Re: Cronjob vorübergehend deaktivieren

Verfasst: Fr 14. Okt 2016, 18:58
von Charles Darwin
Hab noch vergessen zu erwähnen, dass "disabe" auf "disable" geändert werden muss in /var/bin/hdd-sleep.sh. Falls es jemand nutzen will...
Da hält es vanhofen mit Leonardo da Vinci, der auch absichtlich kleine Fehler in seine Pläne für Kriegsmaschinen eingefügt hatte, damit es nicht jeder nutzen konnte. ;)