Motion zu einer bestimmten Zeit starten und wieder beenden

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen, die Videokontrolle des Tiergeheges soll nur nachts erfolgen. Das heißt, Motion soll um 20.00 Uhr starten und um 06.00 Uhr wieder beendet werden. Unter dem user root habe ich folgendes in die Crontab eingetragen:
    00 06 * * * service motion stop >> /home/pi/cronjob.txt 2>&1 (nicht erfolgreich)
    45 19 * * * uv4l --driver raspicam --auto-video_nr --width 640 --height 480 --encoding jpeg >> /home/pi/cronjob.txt 2>&1 (erfolgreich)
    00 20 * * * /etc/init.d/motion start >> /home/pi/cronjob.txt 2>&1 (nicht erfolgreich)

    In der Ausgabedatei steht folgendes:
    06.00 -/bin/sh: 1: service: not found
    19.45 -<notice> [core] Trying driver 'raspicam' from built-in drivers...
    <warning> [core] Driver 'raspicam' not found
    <notice> [core] Trying driver 'raspicam' from external plug-in's...
    <notice> [driver] Dual Raspicam Video4Linux2 Driver v1.9.25 built Jan 6 2015
    <notice> [driver] Selected format: 640x480, encoding: jpeg, JPEG Still Capture
    <notice> [driver] Framerate max. 30 fps
    <notice> [driver] ROI: 0, 0, 1, 1
    <notice> [core] Device detected!
    <notice> [core] Registering device node /dev/video0
    20.00 -Starting motion detection daemon: motion/etc/init.d/motion: 59: /etc/init.d/motion: start-stop-daemon: not found
    failed!

    Zwischendurch, so gegen 10.00 Uhr soll es einen kompletten reboot geben.

    Habe mit hier schon etliche Einträge für crontabs angeguckt, finde jedoch keine Lösung für mein Anliegen. Meistens wird Motion beim Systemstart mit geladen. Aber dass will ich ja nicht.
    Kann mir bitte jemand helfen.

    Danke.
    Thomas

  • Motion zu einer bestimmten Zeit starten und wieder beenden? Schau mal ob du hier fündig wirst!


  • 00 06 * * * service motion stop >> /home/pi/cronjob.txt 2>&1 (nicht erfolgreich)
    45 19 * * * uv4l --driver raspicam --auto-video_nr --width 640 --height 480 --encoding jpeg >> /home/pi/cronjob.txt 2>&1 (erfolgreich)
    00 20 * * * /etc/init.d/motion start >> /home/pi/cronjob.txt 2>&1 (nicht erfolgreich)

    Bist du sicher das du diese Befehle in die crontab des root Benutzers eingetragen hast?

    Guck dir mal die Fehlermeldung an:


    In der Ausgabedatei steht folgendes:
    06.00 -/bin/sh: 1: service: not found

    20.00 -Starting motion detection daemon: motion/etc/init.d/motion: 59: /etc/init.d/motion: start-stop-daemon: not found
    failed!

    Er findet offensichtlich nicht den Befehl "service" ... deshalb bitte immer absolute Pfade verwenden: /usr/sbin/service

    Ich versteh aber nicht wieso der erste Crontabeintrag "service" aufruft aber der dritte das Script direkt :huh: Wieso machst du den ersten Crontabeintrag nicht auch so wie den 3. -> /etc/init.d/motion stop ... ? Unnötiges Chaos gilt es zu vermeiden ;)

    Im Script /etc/init.d/motion scheint es in Zeile 59 auch einen Fehler zu geben... Woher hast du das Script? Kannst du das mal bitte in CODE posten?

  • Danke, für das Interesse. Hier, wenn ich den Dienst beende:
    root@raspicam:/home/pi# service motion stop
    [ ok ] Stopping motion detection daemon: motion.
    root@raspicam:/home/pi#

    Und hier, wenn ich ihn starte:
    root@raspicam:/home/pi# service motion start
    [ ok ] Starting motion detection daemon: motion.
    root@raspicam:/home/pi#

    Alles gut.
    Ich kann auch Motion durch den Aufruf

    root@raspicam:/home/pi# /etc/init.d/motion start
    [ ok ] Starting motion detection daemon: motion.
    root@raspicam:/home/pi#

    starten. Dann erhalte ich auf dem HDMI-Monitor sogar ein Bild.
    Und mit dem hier

    root@raspicam:/home/pi# /etc/init.d/motion stop
    [ ok ] Stopping motion detection daemon: motion.
    root@raspicam:/home/pi#

    wird Motion wieder beendet und auch das Bild ist wieder aus.

    Thomas

  • Wie gesagt... Wieso benutzt du im ersten Crontab Eintrag "service" aber im dritten "/etc/init.d/motion" ? Macht künstliches Chaos stiften so viel Spass? :D

    Trag das mal in die root-Crontab ein:

    Code
    00 06 * * * /etc/init.d/motion stop >> /home/pi/cronjob.txt 2>&1
    45 19 * * * uv4l --driver raspicam --auto-video_nr --width 640 --height 480 --encoding jpeg >> /home/pi/cronjob.txt 2>&1
    00 20 * * * /etc/init.d/motion start >> /home/pi/cronjob.txt 2>&1


    Aber weiterhin verwirrt mich diese Fehlermeldung:


    20.00 -Starting motion detection daemon: motion/etc/init.d/motion: 59: /etc/init.d/motion: start-stop-daemon: not found
    failed!

  • Hallo meigrafd, vielen Dank für Deine Hinweise.
    Das Chaos kommt daher, dass ja der 3.Eintrag auch nicht geht. Am Anfang hatte ich die Einträge (den 1. und 3.) wie den 1. Dann habe ich versucht, das Dilemma zu beseitigen, indem ich den 1.Eintrag veränderte. Aber half ja nicht. Das Script /etc/init.d/motion ist original von der Installation. Da habe ich absolut nichts verändert.
    Wenn ich den 1. Eintrag wie den 3. schreibe, erhalte ich folgendes:

    Stopping motion detection daemon: motion/etc/init.d/motion: 70: /etc/init.d/motion: start-stop-daemon: not found
    failed!

    Wie ich eben schon schrieb, funktioniert der Aufruf von der Kommandozeile problemlos. Nur im dem Cronjob nicht.

    Die Datei /etc/init.d/motion habe ich angefügt. Das .txt musste ich anfügen, konnte sie sonst nicht hochladen.

    Thomas

    Hallo meigrafd, siehe meine Antwort von 22:13 Uhr. Leider nichts Neues :no_sad:
    Thomas

  • Hallo zusammen, DAS Problem ist nun gelöst. Aus welchem Grund auch immer, wurden die Einträge aus der Crontab des users root NICHT richtig ausgeführt. Ich kann hoch und heilig versichern, dass es die Crontab von root war. Unter dem Benutzer pi funktioniert das nun einfach mit voran gesetztem sudo.

    Code
    0,10,20,30,40,50 * * * * sudo /etc/init.d/motion stop > /home/pi/cronjobs.txt 2>1&
    1,11,21,31,41,51 * * * * uv4l --driver raspicam --auto-video_nr >> /home/pi/cronjobs.txt 2>1&
    2,12,22,32,42,52 * * * * sudo LD_PRELOAD=/usr/lib/uv4l/uv4lext/armv6l/libuv4lext.so motion -c ./motion.conf >> /home/pi/cronjobs.txt 2>1&


    Das es alle 10 Minuten ausgeführt wird, ist nur zu Testzwecken so eingestellt.

    Nun ein neues Problem: Diese Konstellation mit der Gehegeüberwachung war bei mir schon längere Zeit im Einsatz. Logischerweise nicht auf dem Schreibtisch, sondern draußen im Freien. Die Verbindung ist also ausschließlich per WLAN möglich. Da mein WLAN-Router hin und wieder mal kein WLAN zur Verfügung stellt (Gott Telekom weiß warum?), bricht jede Verbindung zum Raspi ab. Bisher habe ich dann den Raspi vom Netzt (Strom) genommen und ihn nach 2-3 Minuten wieder angesteckt. Hat auch bis zum letzten Mal gut funktioniert. Da kam er nicht mehr hoch :(
    Das Filesystem hatte irgendeinen irreparablen Schaden. Beim booten blieb er hängen und sagte sinngemäß, dass das Filesystem korrupt wäre und chsk (oder so ähnlich) nicht erfolgreich war. Ich müsse es manuell über den Benutzer root ausführen. Der Benutzer root konnte sich aber nicht anmelden. Hat auch was gefehlt.
    Wie dem auch sei, möchte ich nun, dass der Raspi, sagen wir um 10.00 Uhr neu startet. Und das jeden Tag. Bei dieser Gelegenheit werden auch gleich alle Daten, die im /tmp-Verzeichnis stehen gelöscht. Was gut so ist!

    Leider bekomme ich das mit einem Cronjob nicht hin:

    Code
    00 10 * * * sudo reboot
    00 10 * * * sudo shutdown -r now
    00 10 * * * sudo /bin/bash reboot
    00 10 * * * sudo /bin/bash shutdown -r now


    (Dass alle Zeilen auf 10.00 Uhr stehen ist nur wegen der besseren Übersicht :)
    Geht alles nicht. Weder in der Crontab von pi (wie oben) noch in der vom root (ohne sudo aber auch nicht mit root statt sudo).
    Er macht einfach keinen Neustart. Auch keinen shutdown ohne -r.

    Was ist denn hier nun wieder falsch.

    Danke.
    Thomas

    Einmal editiert, zuletzt von Thomas220 (17. Januar 2015 um 20:15)

Jetzt mitmachen!

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