Task mit init.d starten aber nur zu bestimmten Zeiten

  • Hi,

    ich habe ein Pythonscript welches als Dienst läuft. Soweit, so gut.

    Hintergrundinfo: Das Script fragt einen Bewegungsmelder ab, und macht bei Bewegungen ein Foto, läd dieses auf einen FTP-Server und sendet mir eine PUSH-Benachrichtigung aufs Handy.
    Funktioniert auch so wie es soll.

    Über init.d kann ich den Dienst auch stoppen und starten.

    Jetzt möchte ich auch, dass der Dienst zu einer bestimmten Zeit startet und auch wieder endet (ich will nur Nachts eine Benachrichtigung).
    Dann könnte ich ja locker über Cron regeln.
    Aber: Wenn jetzt, aus welchem Grund auch immer, der Raspi neu startet (z.B. weil ich ihn kurz von seiner Stromversorgung getrennt habe) wird ja per init.d mein script sofort gestartet, und erst wieder gestoppt, wenn über cron der Stoppbefehl dran wäre.
    Da dieser ja erst morgens kommen würde, wäre das sehr lange. Also muß ich z.Z. per SSH das Script manuell löschen.
    Umgekehrt wäre es genauso, wenn ich mal nach beginn der Überwachung die Stromversorgung trenne, müsste ich bis zum nächsten Abend warten.

    Das der Raspi ohne Tastatur und Monitor steht sollte das automatisch gehen.

    Wie könnte ich das realisieren, dass das init-script den Dienst nur innerhalb eines definierten Zeitraums startet. Idealerweise mit den Daten aus der Crontab.

    Gruß Dieter

  • Task mit init.d starten aber nur zu bestimmten Zeiten? Schau mal ob du hier fündig wirst!

  • Um was für ein Script handelt es sich?

    Wieso nimmst du das Script nicht einfach aus dem Runlevel raus und trägst es ausschließlich in crontab ein?
    Forumsuche nach: crontab
    1.Treffer
    -> @reboot

  • Aber dann wird es ja auch bei jedem Start ausgeführt.
    Das wird es ja jetzt schon.

    Also, das Script soll z.B. von 22:00 bis 6:00 laufen, am Tage nicht.
    Wenn jetzt aber der Raspi um 12:00 gestartet wird, soll das Script nicht ausgeführt werden. Wenn er aber um 22:10 gestartet wird, soll das Script ausgeführt werden.

    Der cron-Dienst überwacht ja keine laufenden Prozesse, sondern für nur zu dem definierten Zeitpunkt Befehle aus. Demnach kann das mit @reboot auch nicht funktionieren.

    ich könnte aber das init-Script dahingehend verändern, dass dieses die aktuelle Uhrzeit abfragt und nur innerhalb einer bestimmten Zeitspanne den Start des Python-Scriptes zuläßt.
    Nur wie ich dass in einem Shell-Script machen könnte, weiß ich nicht.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!