Re: Правила udev
Сергей С. -> debian-russian@lists.debian.org @ Tue, 2 Mar 2010 11:39:27 +0600:
СС> Приветствую всех!
СС> Не могу понять почему на отрабатывает скрипт на remove, хотя при этом
СС> отрабатывает на add.
"Не отрабатывает" - это "не запускается" или "не отмонтирует"? Если
второе, то видимо, man umount на предмет -f, -l и, может быть, -i.
Но вообще да, идея отмонтировать после выдергивания устройства - она,
гм, мина замедленного действия. На FAT, конечно, не столь FATально, как
на более толковых файловых системах, но все же...
Кстати, в скрипте в ветке, когда add и директория не существует,
ошибка. Вместо $1 должно быть $2.
А все почему? А все потому, что код монтирования дублировать не надо.
СС> 1) /etc/udev/rules.d/010_test_remount_add.rules :
СС> BUS=="usb", SUBSYSTEM=="block", KERNEL=="sd[a-z][0-9]", GROUP=="disk",
СС> ACTION=="add", NAME="%k", RUN+="/usr/local/bin/mount_test.sh add %k"
СС> BUS=="usb", SUBSYSTEM=="block", KERNEL=="sd[a-z][0-9]", GROUP=="disk",
СС> ACTION=="remove", NAME="%k", RUN+="/usr/local/bin/mount_test.sh remove %k"
СС> 2) mount_test.sh :
СС> #!/bin/sh
СС> MOUNT_DIR="/home/user/mount_dir"
СС> sleep 3
СС> if [ "$1" == "add" ]; then
СС> if [ -d $MOUNT_DIR ]; then
СС> FLASH_DEV =`echo $2 | sed -n '/^sd[a-z][1-9]\?/p'`
СС> /bin/mount -t vfat /dev/$FLASH_DEV $MOUNT_DIR -o
СС> flush,rw,gid=disk,umask=007,iocharset=utf8
СС> else
СС> mkdir $MOUNT_DIR
СС> chown user:user $MOUNT_DIR
СС> chmod 775 $MOUNT_DIR
СС> FLASH_DEV=`echo $1 | sed -n '/^sd[a-z][1-9]\?/p'`
СС> mount /dev/$FLASH_DEV $MOUNT_DIR -o
СС> flush,rw,gid=disk,umask=007,iocharset=utf8
СС> fi
СС> elif [ "$1" == "remove" ]; then
СС> /bin/umount /dev/$2
СС> fi
СС> exit 0
Reply to: