I have a Python script calling GPIOZERO to watch for button presses, calling a few different functions (turn off LCD etc) these work from cron, but the calls to bash from subprocess do not. Runs fine from command line. The other functions in this script do work, but not this one, I have double checked absolute paths and they appear to be correct.
in myscript.py:
#!/usr/local/bin/python
sys.path.append('/home/pi/.local/lib/python2.7/site-packages')
import subprocess
#set global batch mode on or off
def running():
global r
r = not r
if r is True:
subprocess.Popen(['/home/pi/Documents/ytu/desktop_col.sh', 'run'])
print "run mode"
elif r is False:
subprocess.Popen(['/home/pi/Documents/ytu/desktop_col.sh' ,'stop'])
print "pause mode"
When run from python command line, script works fine, but not from Cron or any other startup method. This is the bash code it calls. I am switching desktop backgrounds to use as an indicator of status.
#!/usr/bin/bash
alert_display=`cat /media/pi/VDRIVE/prefs/alert_display_number.txt`
export XAUTHORITY=/home/pi/.Xauthority
export DISPLAY=:$alert_display
if [ "$1" = "run" ] ; then
pcmanfm --set-wallpaper="/home/pi/Downloads/youtube-512.png"
echo "run" > "/media/pi/VDRIVE/prefs/run-status.txt"
elif [ "$1" = "stop" ] ; then
pcmanfm --wallpaper-mode=color
echo "stop" > "/media/pi/VDRIVE/prefs/run-status.txt"
fi