Eu tenho um pequeno observador que estou implantando para detectar quando um determinado pen drive USB é inserido nos terminais do SLED 11 (Suse). Ele deve então montar esse stick e ler alguns arquivos nesse stick. Problema é - não consigo montar a unidade do serviço. Eu tentei por / dev / sdc? e por uuid. O serviço de alguma forma não pode encontrar essas unidades, embora eu possa encontrá-los em qualquer terminal.
function monitorUSBInsert(){
idVendor="0781"
idProduct="5575"
idString="${idVendor}:${idProduct}"
devWasConnected=$(lsusb | grep "ID ${idString}" | wc -l)
inotifywait -r -m /dev/bus/usb -e CREATE -e DELETE | while read e; do
devIsConnected=$(lsusb | grep "ID ${idString}" | wc -l)
if [[ ( "$devWasConnected" == 0) && ( "$devIsConnected" == 1) ]]; then
PARTITION='/usr/bin/readlink -f /dev/disk/by-uuid/$UUID'
UUID=$(blkid -t TYPE=ext2 -sUUID |cut -d'"' -f2)
if grep -qs $PARTITION /proc/mounts; then
MOUNTED='1'
MOUNT_POINT='grep $PARTITION /proc/mounts | awk '{ print $2 }''
else
MOUNTED='0'
mkdir -p "$MOUNT_POINT"
mount /dev/disk/by-uuid/$UUID "$MOUNT_POINT"
fi
fi
devWasConnected=${devIsConnected}
done
}
O serviço é iniciado usando:
echo "$@" | grep -q -- "--nohup" && monitorUSBInsert || nohup $0 "$@" --nohup &
Na pasta init.d.
A chamada para obter o UUID volta vazia e quando tento montar por / dev / sdc2 o erro é que isso não é um dispositivo.