0

ボタンの押下を監視するために GPIOZERO を呼び出し、いくつかの異なる機能 (LCD をオフにするなど) を呼び出す Python スクリプトがありますが、これらは cron から機能しますが、サブプロセスからの bash の呼び出しは機能しません。コマンドラインから正常に実行されます。このスクリプトの他の関数は機能しますが、これは機能しません。絶対パスを再確認したところ、正しいように見えます。

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"

Python コマンド ラインから実行すると、スクリプトは正常に動作しますが、Cron やその他の起動方法からは動作しません。これは、それが呼び出す bash コードです。ステータスのインジケーターとして使用するデスクトップの背景を切り替えています。

    #!/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
4

1 に答える 1