Python – Problems running python script from motion

motionpythonraspberry piscripting

I'm trying to set up the raspberry pi with my webcam as a motion detecting cctv that uploads the videos to google drive using Jeremy Blythe's script

I have motion working correctly and the python script runs when I test it from the terminal.

However the script doesn't run when I add it to the on_movie_end option in motion.conf.

The script I am using in the file is

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

I have also tried getting the on_movie_end to run a bash script that runs the python script and this doesn't work either. I am new to linux though so not entirely sure I have it correct.

The script is:

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

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

Best Answer

Check the following points:

  1. All the examples I saw use on_movie_end instead of On_Movie_End. So try using the lowercase version first.

  2. Check if both script have execution permission. If not add it:

    sudo chmod +x /etc/motion/uploader.py
    sudo chmod +x /etc/motion/uploaderscript.sh
    
  3. Redirect the stderr of the python script to a file. That can help to catch a error. Edit the .sh file to match this (note the $VIDEO: it is the correct way to reference a variable in bash):

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