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

DanBrum
quelle
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
Salem
quelle
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.

Dan
quelle
0

Diese Konfiguration funktioniert bei mir:

on_movie_end /usr/bin/python /home/myuser/Scripts/MyScript.py

Natürlich muss das Skript über die richtigen Berechtigungen verfügen, um vom Bewegungsprozess ausgeführt zu werden. Weitere Details zur Konfiguration finden Sie in den Motion Docs:

https://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions

Frith
quelle