Probleme beim Ausführen von Python-Skripten aus Motion


7

Ich versuche, den Himbeer-Pi mit meiner Webcam als Bewegungserkennungs-CCTV einzurichten, der die Videos mithilfe von Jeremy Blythes Skript auf Google Drive hochlädt

Ich habe Motion, die richtig funktioniert, und das Python-Skript wird ausgeführt, wenn ich es vom Terminal aus teste.

Das Skript wird jedoch nicht ausgeführt, wenn ich es der Option on_movie_end in motion.conf hinzufüge.

Das Skript, das ich in der Datei verwende, ist

On_Movie_End /etc/motion/uploader.py /etc/motion/uploader.cfg %f

Ich habe auch versucht, das on_movie_end dazu zu bringen, ein Bash-Skript auszuführen, das das Python-Skript ausführt, und dies funktioniert auch nicht. Ich bin neu in Linux, aber nicht ganz sicher, ob ich es richtig habe.

Das Skript lautet:

#!/bin/bash
VIDEO=$1 
/etc/motion/uploader.py /etc/motion/uploader.cfg VIDEO

In motion.conf /etc/motion/uploaderscript.sh% f


Vielleicht solltest du es tun /usr/bin/python /etc/motion/uploader.py /etc/motion/uploader.cfg VIDEO. Oder überprüfen Sie, ob Python Binary in einem anderen Verzeichnis installiert ist, und ändern Sie die obige Zeile.
Luis

1
In Bash sollten Sie Variable als/etc/motion/uploader.py /etc/motion/uploader.cfg $VIDEO
Rahul Patil

Keine dieser Lösungen funktioniert, aber ich vermute, dass das on_movie_end nicht aufgerufen wird, da ich versucht habe, es nur dazu zu bringen, das Leafpad zu öffnen, um zu sehen, ob das funktioniert hat und nicht
DanBrum

Antworten:


1

Überprüfen Sie die folgenden Punkte:

  1. Alle Beispiele, die ich gesehen habe, wurden on_movie_endanstelle von verwendet On_Movie_End. Versuchen Sie also zuerst, die Kleinbuchstabenversion zu verwenden.

  2. Überprüfen Sie, ob beide Skripte über Ausführungsberechtigungen verfügen. Wenn nicht, fügen Sie es hinzu:

    sudo chmod +x /etc/motion/uploader.py
    sudo chmod +x /etc/motion/uploaderscript.sh
  3. Leiten Sie den stderr des Python-Skripts in eine Datei um. Das kann helfen, einen Fehler zu erkennen. Bearbeiten Sie die .sh-Datei entsprechend (beachten $VIDEOSie Folgendes : Es ist die richtige Methode, um auf eine Variable in bash zu verweisen):

    #!/bin/bash
    VIDEO=$1 
    /etc/motion/uploader.py /etc/motion/uploader.cfg $VIDEO &> /tmp/on_movie_end.log

0

Ich konnte immer noch nicht herausfinden, wie man ein Python-Skript aus Bewegung spielt. Stattdessen führe ich einfach ein Bash-Skript aus, das eine Textdatei erstellt. Beim Start führt das eigentliche Python-Skript eine while-Schleife aus, um zu überprüfen, ob die Textdatei vorhanden ist, und führt den Rest des Skripts aus, sobald dies der Fall ist.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.