USBディスクをマウント解除すると、自動的に電源がオフになるようにセットアップを作成する方法は?
一般的に、udisksctl
はトリックを行うべきですifハードウェアがそれをサポートします。すべての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 1000GB、500GBドライブのICY-box)でテストしたところ、動作するようです。中国の超格安($ 0.90)S-ATA-USBアダプターでは動作しませんでした...
eject
コマンドを試すこともできます-これは、イジェクトコマンドをデバイスに送信します。多くの場合、これによりスピンダウンが発生します。 Sudo eject /dev/sdX
-ただし、udisksctlが機能しない場合、機能する可能性はわずかです。
私が知る限り、一部のデスクトップはこれを自動的に行いますが、他のデスクトップはそうしません。 Plasmaはそれを行いません( https://bugs.kde.org/show_bug.cgi?id=270808 )簡単な回避策がそこに投稿されています( https:// bugs.kde.org/show_bug.cgi?id=270808#c64 )。これは、通知を表示するわずかに改善されたバージョンです。
回避策は、DeviceNotifierに新しいアクションを追加することで構成されます。このアクションは、デバイスのマウントを解除して電源を切るbashスクリプトを実行します。すべてのEdgeケースをテストしているわけではありませんが、ほとんどの場合に機能するはずです。次の2つのファイルを追加するだけです。 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