Как создать установку, таким образом, что, если я размонтировал диск USB затем, он автоматически выключается также?
Вообще говоря, udisksctl
должен добиться цели если поддержка оборудования это. Не все диски USB придерживаются стандартов одинаково хорошо...
udisksctl power-off -b /dev/sdX
попытается выключить диск:
$ udisksctl power-off --help
Usage:
udisksctl power-off [OPTION...]
Safely power off a drive.
Options:
-p, --object-path Object path for ATA device
-b, --block-device Device file for ATA device
--no-user-interaction Do not authenticate the user if needed
Просто протестировал это с несколькими различными дисками (Seagate BackupPlus 1000 ГБ, ЛЕДЯНОЕ поле с диском на 500 ГБ), и это, кажется, работает. Это не работало над китайским супердешевым S-ATA-USB (0,90$)...
можно также попробовать эти eject
команда - который отправляет извлечь команду на устройство. Это во многих случаях вызовет вращение вниз. sudo eject /dev/sdX
- но существует небольшой шанс его работа, если udisksctl не работает.
Насколько я знаю, что некоторые рабочие столы делают это автоматически, другие не делают. Плазма не делает этого (https://bugs.kde.org/show_bug.cgi? id=270808), простое обходное решение было отправлено там (https://bugs.kde.org/show_bug.cgi? id=270808#c64). Вот немного улучшенная версия, которая покажет уведомления.
Обходное решение состоит из добавления нового действия к DeviceNotifier, который запустит скрипт удара, который размонтирует и выключит устройство. Это не тестирует все пограничные случаи, но это должно работать в большинстве случаев. Просто добавьте следующие два файла. После перезапуска kded5 (или после того, чтобы выходить из системы и назад на снова) съемные устройства должны иметь новое действие "Размонтирование и USB-устройство Выключения питания".
~/.local/bin/power-device-off (удостоверяются к chmod +x это),
#!/bin/bash
if udisksctl unmount -b $1; then
if udisksctl power-off -b $1; then
notify-send "Device $1 powered off and can be removed safely."
else
notify-send "Unmounted $1, but could not power down."
fi
else
notify-send "Could not unmount $1."
fi
~/.local/share/solid/actions/power-devices-off.desktop
[Desktop Entry]
X-KDE-Solid-Predicate=[ [ [ StorageVolume.ignored == false AND StorageVolume.usage == 'FileSystem' ] OR [ IS StorageAccess AND StorageDrive.driveType == 'Floppy' ] ] OR StorageAccess.ignored == false ]
Type=Service
Actions=open;
[Desktop Action open]
Name=Unmount and Power-Off USB device
Exec=power-device-off "%d"
Icon=emblem-unmounted