Підключення до події монтажу / umount linux


9

чи є спосіб забезпечити сценарії після монтажу та попереднього введення в Linux?
Я намагаюся зробити деякі сценарії на носіях пам’яті під час монтажу та перед тим, як налаштувати їх (наприклад, для синхронізації).

Будь-яка допомога вдячна.


Як монтується файлова система? Речі не монтуються автоматично, імовірно, у вас є програма / інструмент, який виконує монтаж. Вам потрібно визначити, що це таке, і замінити його чи виправити.
Зоредаче

У моєму випадку я зазвичай використовую підсистему KDE (імовірно, це Dolphin, не знаю, який компонент відповідає за фактичну команду mount)
Jörg Haubrichs

1
Я писав про обробку автоматичних пристроїв за допомогою uDev або з HALevt у відповідях на інше питання. це були б заміни для підсистеми KDE або GVFS, але процедура може дати вам декілька ідей, де їх шукати. це здається, що ви хочете скористатися кріпленнями Dbus (робочий стіл / простору користувачів, а не рівень ядра).
кихат шарлатан

Відповіді:


2

Якщо ви намагаєтеся це зробити для людей, які викликають команду /sbin/mountта /sbin/umountкоманду, все, що вам потрібно зробити, - це зробити програму для обгортки для обох і запрограмувати те, що ви хочете, в ці програми обгортки.

Програма обгортки, яка замінюється /sbin/mountпрограмою обгортки, яка викликає справжню /sbin/mount(перейменована на щось на зразок /sbin/mount-realабо /sbin/umount-real). Щоб ніхто не викликав справжню програму, використовуйте групові дозволи для обмеження її та встановіть біт SGID на програмах для обгортки.

Якщо ви хочете виправити mount(2)виклик бібліотеки, добре, що це зусилля, і, ймовірно, важко і, ймовірно, не доцільно, оскільки це може спричинити проблеми для внутрішньої обробки систем, особливо під час запуску та вимкнення.

Навіть із програмою для обгортки вам, мабуть, доведеться ретельно перевірити її, щоб уникнути системних втручань та внести відповідні корективи.


Дуже погана порада і жах у обслуговуванні, якщо це зробить кілька програм. Не починайте так.
Лотар

0

Ви, ймовірно, можете використовувати гачок інотифікованого ядра, хоча попередньо відключити подію може бути дуже складно, тому що я не впевнений, чи є ініціативна подія, надіслана до вилучення каталогу.


2
inotify скаже вам, що створено каталог (наприклад, під /mediaабо /mnt), але не, якщо файлова система була встановлена ​​в цьому каталозі.
Крейг МакКуїн

0

Найпростіше рішення, яке, ймовірно, буде працювати назавжди - це опитування /etc/mtabабо /proc/mounts. Після внесення змін до цього файлу це означає, що або щось встановлено або відключено. Тоді вам доведеться перевірити потрібний пристрій.

Udev - не найкраще рішення, оскільки він просто повідомляє, чи підключено пристрій. Він не говорить про те, чи пристрій фактично встановлено чи ні. Це може спрацювати іноді, але це хитре рішення, яке в якийсь момент зламається, і ви витягнете волосся.


"хакі", як правило, досить хороший для більшості ситуацій. Реальний світ керується "хакітними" рішеннями. Якщо ви цього не знаєте, то у вас немає реального досвіду використання комп'ютерних систем. Будь ласка, збережіть свою думку до себе і дотримуйтесь фактів. Дякую.
natxo asenjo

1
@natxoasenjo тому є хороші розробники та погані розробники.
Пітікос

будь ласка, повертайтеся, коли у вас є реальний досвід у світі. Що ви пропонуєте, це написати якийсь сценарій / програму для опитування файлів, і ви вважаєте, що це краща ідея, ніж використовувати добре перевірений api як udev. Хто поганий розробник? ;-)
natxo asenjo

і, до речі, написання правил udev не робить вас розробником, максимум систематичним вашим комп'ютером.
natxo asenjo

1
@natxoasenjo добре, якщо ви не бачите, що програми "реального світу" весь час ламаються через хакерські рішення, то ви або сліпі, або не маєте "реального досвіду". Udev прекрасно працює, але не має нічого спільного з монтажем та демонтажем. І будь ласка, перестаньте перетворювати це на форумну тему про те, хто є програмістом. Нікому не допомагає.
Пітікос

0

ви можете написати правило udev для цього. Я використовував що - щось на зразок цього для автоматичного резервного копіювання матеріалу на USB - накопичувач. Веселі речі.


1
здається, у udev немає події для монтажу / відключення. Він спрацьовує саме під час підключення / відключення пристрою. І ваше посилання не працює ..
Pithikos

на що відповіли 4 роки тому. Я не несу відповідальності за цей сайт. Але ви можете поглянути на archive.org ... так, це все ще є, виявлення це залишиться як вправа для читача. Що стосується Вашого коментаря щодо udev, udev дозволяє писати правила та виконувати дії, коли вони відповідають. Це все, що вам потрібно.
natxo asenjo

2
справа полягає в тому, щоб допомогти іншим людям, які спотикаються у цьому питанні, справа не в питаннях чи інших підсиленнях его. Тепер навіть якщо користувач пережив усі ці проблеми, рішення там застаріло. Таким чином, ви витрачаєте час людей без жодної вигоди (крім 1-2 голосів, які у вас є).
Пітікос

2
@natxoasenjo інші користувачі вірні, і саме тому ми рекомендуємо відповісти, щоб процитувати або перефразовувати достатню кількість інформації з пов'язаних ресурсів, щоб відповідь була окремою, якщо посилання загинуть. Хороша відповідь тут насправді показала б приклад того, як створити правило udev для запуску сценарію до / після монтажу / відключення.
nhinkle

1
@natxoasenjo Я відвідав цю публікацію, оскільки ваш коментар був пов’язаний з незалежним користувачем як грубий або невірний. Обмін стеками має певні очікування щодо відповідей, одне з яких полягає в тому, що вони повинні містити більше, ніж посилання на зовнішнє джерело. Ваша відповідь не відповідає цій вимозі. У вас є думка про те, що є «ідеально чудовим», що не відповідає очікуванням біржі стеків на гарну відповідь. Будь-який час, щоб прочитати, як відповісти .
nhinkle
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.