Я написал скрипт и службу для выключения внешнего диска Seagate при выключении. Это сработало в первый раз, но когда я перезапускаю компьютер, он не активируется. Мне всегда приходится запускать его вручную перед выключением, что противоречит цели. Может быть, кто-нибудь здесь может помочь мне заставить службу работать таким образом, чтобы всегда при выключении компьютера он также отключал диск.
Сценарий:
#!/bin/sh
disk_uuid="MY-UUID-PLACEHOLDER"
udisksctl unmount -b /dev/disk/by-uuid/${disk_uuid}
udisksctl power-off -b /dev/disk/by-uuid/${disk_uuid}
exit 0
Файл обслуживания:
[Unit]
Description=Shut down external disks
DefaultDependencies=no
Before=shutdown.target reboot.target kexec.target halt.target
[Service]
Type=oneshot ExecStart=/usr/sbin/power-off-disk.sh
RemainAfterExit=yes
[Install]
WantedBy=halt.target kexec.target reboot.target shutdown.target
Логи из journalctl -u:
Feb 22 11:53:50 ace-desktop systemd[1]: Starting Shut down external disks...
Feb 22 11:53:50 ace-desktop power-off-disk.sh[9810]: Error connecting to the udisks daemon: GDBus.Error:org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying
Feb 22 11:53:50 ace-desktop power-off-disk.sh[9880]: Error connecting to the udisks daemon: Error calling StartServiceByName for org.freedesktop.UDisks2: Transaction for udisks2.service/start is destructive (dev-sdb1.swap has 'stop' job queued, but 'start' is included in transaction).
Feb 22 11:53:50 ace-desktop systemd[1]: power-off-disk.service: Deactivated successfully.
Feb 22 11:53:50 ace-desktop systemd[1]: Finished Shut down external disks.
Итак, я отредактировал свой файл Service:
[Unit]
Description=Shut down external disks
DefaultDependencies=no
Before=udisks2.service shutdown.target reboot.target halt.target
[Service]
Type=oneshot
ExecStart=/bin/true
ExecStop=/usr/sbin/power-off-disk.sh
RemainAfterExit=no
[Install]
WantedBy=shutdown.target reboot.target halt.target
Но это ничего не меняет.
systemctl start power-off-disk
работает, когда активируется вручную, но не при выключении. Помощь была бы очень признательна.