Как автоматически выключить USB-устройства после размонтирования

Как создать установку, таким образом, что, если я размонтировал диск USB затем, он автоматически выключается также?

2
задан 1 October 2017 в 22:30

2 ответа

Вообще говоря, 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 не работает.

1
ответ дан 2 December 2019 в 04:47

Насколько я знаю, что некоторые рабочие столы делают это автоматически, другие не делают. Плазма не делает этого (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
0
ответ дан 2 December 2019 в 04:47

Другие вопросы по тегам:

Похожие вопросы: