[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: