انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید




نویسنده موضوع: عدم اجرای دوباره udisksctl توسط udev rules  (دفعات بازدید: 559 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین farid.t

  • Jr. Member
  • *
  • ارسال: 64
  • جنسیت : پسر
عدم اجرای دوباره udisksctl توسط udev rules
« : 14 تیر 1395، 03:32 ب‌ظ »
سلام. دوستان من برای mount کردن یک usb flash با استفاده از udisksctl، یک udev rules نوشتم که اسکریپتی که حاوی دستور udisksctlهست رو اجرا میکنه. ولی این rule فقط یک بار میتونه این اسکریپت رو اجرا کنه! بهتر توضیح بدم ایراد از udisksctl هستش، زمانی که برای بار اول rule، اسکریپت رو فراخوانی میکنه دستور udsiksctl میتونه usb رو mount کنه. ولی وقتی unmount اتفاق میفته و usb دوباره وصل میشه به لپتاپ، rule اسکریپت رو فراخوانی میکنه ولی عمل mount اتفاق نمیفته تا زمانی که سیستم reboot بشه. البته برای اینکه mount در مسیری اتفاق بیفته که userها توانایی خواندن و نوشتن روی  usb داشته باشند، یه rule هم بر اساس راهنمای wiki برای udisk نوشتم. بعد از unmount کردن این کارها رو هم انجام دادم:
udevadm control --reload-rules
udevadm control --reload
systemctl reset-failed
================================================================================================
cat /etc/udev/rules.d/99-udisks2.rules
# UDISKS_FILESYSTEM_SHARED
# ==1: mount filesystem to a shared directory (/media/VolumeName)
# ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName)
# See udisks(8)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"

cat /etc/udev/rules.d/81-customrule.rules
KERNEL!="sd*", GOTO="LAST_LINE"
ACTION=="add", SUBSYSTEM=="block", SUBSYSTEMS=="usb", ATTRS{idProduct}=="5500", ATTRS{idVendor}=="13fe", ATTRS{serial}=="15022549026E60057B2C8C11B11", ENV{ID_SERIAL}=="UFD_3.0_Silicon-Power32G_15022549026E60057B2C8C11B11-0:0", ENV{ID_VENDOR_ID}=="13fe", OWNER="farid", MODE="0666", SYMLINK+="SiliconPower", RUN+="/home/farid/Desktop/auto_mount.sh %k"
LABEL="LAST_LINE"


cat ~/Desktop/auto_mount.sh
#!/bin/bash
POINT="$1"
/usr/bin/udisksctl mount -b /dev/$POINT
[/size]