Автор Гілка: Запуск скрипта під час монтування CD/DVD  (Прочитано 1490 раз)

Відсутній lenier

  • Дописувач
  • **
  • дописів: 96
  • Карма: +0/-0
Вітаю!

Треба, щоб скрипт автоматично запускався при монтуванні CD/DVD. Але, що важливо, інший скрипт має запускатись при розмонтуванні.
Перерив пів-Ґуґля, знайшов для монтування usb-флешок (правила udev), пробував це діло для CD застосувати, щось не йде (а може вже й мозги не варять).

Система: Ubuntu 9.10, є ’/etc/udev/rules.d/70-persistent-cd.rules`. Підкажіть, куди копати? Наразі дякую.

Відсутній lenier

  • Дописувач
  • **
  • дописів: 96
  • Карма: +0/-0
Створив файл /etc/udev/rules.d/60-mounting-cd.rules з таким кодом:

ACTION=="add", KERNEL=="cdrom", RUN+="eject" #eject для того, щоб просто перевірити правильність коду  :)
ACTION=="add", KERNEL=="cdrw", RUN+="eject"
ACTION=="add", KERNEL=="dvd", RUN+="eject"
ACTION=="add", KERNEL=="dvdrw", RUN+="eject"
ACTION=="add", KERNEL=="scd[0-9]*", RUN+="eject"
ACTION=="add", KERNEL=="sr0", RUN+="eject"

Ніц не йде. Підкажіть, куди копади?

Відсутній AntonG

  • Дописувач
  • **
  • дописів: 54
  • Карма: +0/-0
Я якось бавився з udev для монтування флешок. Вже не пригадаю, що де брав, але успішно все запрацювало лише після прочитання загальних мануалів щодо написання правил для udev, а не конкретного випадку. Щось на зразок цього, і ось цього, але може й не воно. Багато цікавого можна дізнатись за допомогою udevadm (udevadm monitor [options], udevadm info [options]) - раніше це було udevinfo. Я запускав його з різними ключами і спостерігав реакцію, з якої потім діставав слова для правил.
Сподіваюсь, це вам допоможе.

Відсутній lenier

  • Дописувач
  • **
  • дописів: 96
  • Карма: +0/-0
Дуже цікавий варіант запропонував ivman - власне, мені скрипт потрібен для того, щоб визначити, який звір (cd/dvd) монтується.
Додавши в файл "IvmConfigActions.xml" код

<ivm:Match name="hal.volume.disc.type" value="cd_rom">
    <ivm:Match name="hal.volume.disc.has_audio" value="true">
        <ivm:Match name="hal.volume.disc.has_data" value="false">
          <ivm:Option name="exec" value="echo audio > /usr/share/xbmc/scripts/status_DVD.txt"/>
      </ivm:Match>
    </ivm:Match>
</ivm:Match>

<ivm:Match name="hal.volume.disc.type" value="cd_rom">
    <ivm:Match name="hal.volume.disc.has_data" value="true">
        <ivm:Match name="hal.volume.disc.has_audio" value="false">
            <ivm:Option name="exec" value="echo cd_rom > /usr/share/xbmc/scripts/status_DVD.txt"/>
        </ivm:Match>
    </ivm:Match>
</ivm:Match>

<ivm:Match name="hal.volume.disc.type" value="cd_r">
    <ivm:Match name="hal.volume.disc.has_data" value="true">
        <ivm:Match name="hal.volume.disc.has_audio" value="false">
            <ivm:Option name="exec" value="echo cd_r > /usr/share/xbmc/scripts/status_DVD.txt"/>
        </ivm:Match>
    </ivm:Match>
</ivm:Match>

<ivm:Match name="hal.volume.disc.type" value="cd_rw">
    <ivm:Match name="hal.volume.disc.has_data" value="true">
        <ivm:Match name="hal.volume.disc.has_audio" value="false">
             <ivm:Option name="exec" value="echo cd_rw > /usr/share/xbmc/scripts/status_DVD.txt"/>
        </ivm:Match>
    </ivm:Match>
</ivm:Match>

<ivm:Match name="hal.volume.disc.type" value="dvd_plus_r">
    <ivm:Option name="exec" value="echo dvd_plus_r > /usr/share/xbmc/scripts/status_DVD.txt"/>
</ivm:Match>

<ivm:Match name="hal.volume.disc.type" value="dvd_plus_rw">
    <ivm:Option name="exec" value="echo dvd_plus_rw > /usr/share/xbmc/scripts/status_DVD.txt"/>
</ivm:Match>

<ivm:Match name="hal.volume.disc.type" value="dvd_r">
    <ivm:Option name="exec" value="echo dvd_r > /usr/share/xbmc/scripts/status_DVD.txt"/>
</ivm:Match>

<ivm:Match name="hal.volume.disc.type" value="dvd_rw">
    <ivm:Option name="exec" value="echo dvd_rw > /usr/share/xbmc/scripts/status_DVD.txt"/>
</ivm:Match>
,

я точно знаю, що саме я вставив у привід.
« Змінено: 2010-02-27 13:50:08 від lenier »