срабатывание предохранителя на umount
Вопрос
Я написал несколько простых файловых систем с Python-fuse, но теперь я хочу сделать то, что я не могу найти ни в pydoc, ни в найденных мной примерах скриптов: когда файловая система отключена с помощью fusermount -u
, Я хочу перехватить это действие, выполнить umount, а затем rmdir каталог монтирования, созданный скриптом инициализации моей программы.Если это вообще возможно, то какое магическое заклинание удерживает действие размонтирования?
Я понимаю, как это может легко превратиться в бесконечный цикл, но я надеюсь, что смогу понять, как отключить ловушку umount при первом попадании в нее.
Обновление: я нашел
destroy
на http://omake.metaprl.org/prerelease/omake-dll-fuse.html#htoc582 и добавил метод, но, похоже, он не вызывается.
Решение
нашел!это fsdestroy () в Python-fuse.нашел его:
родовое словоЯ использовал:
родовое словоНе знаю, нужен ли параметр данных, но не повредит.И, очевидно, он называется после umount, поэтому мне не пришлось беспокоиться об этом.
Другие советы
Еще одно решение, хотя и не конкретное и не тестировавшееся в Python, - предотвратить «демонизацию» FUSE с помощью переключателя -f
.
В этом случае метод fuse_main
будет блокироваться до тех пор, пока файловая система не будет отключена, а после этого вы получите управление обратно.
Если вам действительно нужно поведение deamon, вы можете заново реализовать его перед монтированием.