Hi everyone and thanks you to taking the time to read this post.
I’m trying to make my pi running some mpc commands when a usb stick is connected / removed.
this is my udev rule :
ACTION=="add"\ , SUBSYSTEM=="block"\ , KERNEL=="sd?1"\ , RUN+="/home/pi/udev/usbAdd.sh" ACTION=="remove"\ , SUBSYSTEM=="block"\ , KERNEL=="sd?1"\ , RUN+="/home/pi/udev/usbRemove.sh"
this is my usbAdd script
#!/bin/bash set -x exec > /home/pi/udev/error.log 2>&1 sleep 10 echo "updating" mpc update while mpc status | grep -q 'Updating DB' do sleep 3 done mpc --wait clear mpc --wait add usb mpc --wait play
and my usbRemove script
#!/bin/bash set -x exec > /home/pi/udev/error.log 2>&1 mpc stop mpc clear mpc update
The problem is that the add script only works when it’s manually executed.
When its triggered with the udev rule, the mpd database stay empty. I think this is because when the script is executed, the usb volume isn’t fully mounted yet but I don’t have any idea on how to make sure to run the add script when the mount point is ready (see my desperate move with the sleep call…).
thanks you for your help