Есть ли способ автозапуска при отключении внешнего USB-накопителя (U10.04)?
У меня есть маленький USB HD, который я купил для ежедневного резервного копирования, на котором установлена система encfs.
У меня есть autorun
скрипт в корне, который делает пару вещей, включая монтирование Enc-FS, и эта часть работает нормально.
Однако если я забуду fusermount -u
enc-FS - перед его извлечением нет никаких предупреждений, и USB отключается, оставляя часть encFS по-прежнему подключенной. Конечно, это не совсем так, и попытка доступа с помощью nautilus, скажем, приводит к тому, что машина "плохо себя ведет".
Существует также риск потери файлов, я полагаю.
По какой-то причине системы, похоже, не обнаруживают, что диск все еще активен, как обычно, в этом сценарии.
В любом случае, мой вопрос заключается в том, возможно ли установить эквивалент автозапуска при отключении, который запускается при извлечении USB?
Спасибо
1 ответ
Ну, я придумал не очень элегантный способ обойти это. autorun
скрипт выглядит примерно так:
#!/bin/bash
/path/to/mount-script&
while : # loop isn't really needed ...
do
sleep 999d # ... because the script will idle for 999 days
if (($?))
then
# sleep closed abnormally, so tidy up
/path/to/dismount-script
exit 1
fi
done
Поэтому, когда происходит извлечение диска, система обнаруживает sleep
а также bash
все еще работает и выдает предупреждающий диалог; щелкните правой кнопкой мыши sleep
в диалоговом окне "завершение" он затем вызывает состояние выхода 130, что означает, что вызывается сценарий размонтирования, а когда он возвращает, сценарий bash завершается, а устройство USB затем чисто удаляется.