Я использую Udisks через dbus в python для размонтирования usb-устройства (в данном случае Kindle), но я бы хотел отправить ему сигнал извлечения, так как это возвращает Kindle из режима USB в его обычный режим. интерфейс.
Udisks не позволит мне DriveEject, так как это не настоящий диск, и я понял, что это особенность. Ошибка:
dbus.exceptions.DBusException: org.freedesktop.UDisks.Error.Failed: Device is not a drive
Документация Udisks упоминает свойство извлечения:
ID_DRIVE_EJECTABLE
Является ли носитель в накопителе
физически извлекаемый Только установите это
1 (или 0), если диск действительно использует (или
не) извлекаемые носители. В
в частности, не нужно устанавливать
это, например, устройства iPod или Kindle
куда нужно отправить
команда через eject (1) с рабочего стола
сеанс пользователя предложит эту опцию
для съемных устройств независимо от
являются ли они извлекаемыми. Если это
свойство не установлено, эвристическая воля
использоваться для определения того,
извлекаемые (диски с использованием оптических, Zip
или Jaz СМИ считаются
откидной).
но не объясняет, как это сделать из сеанса пользователя на компьютере.
(Nautilus позволяет мне просто извлечь из оболочки рабочего стола. Команда оболочки 'eject' размонтируется, но не отправит сигнал извлечения на устройство без sudo)
Есть ли какой-нибудь законный способ сделать это с помощью Udisks, и если нет, как Nautlius делает это?