종료 시 외부 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.
이제 서비스 파일을 편집했습니다.
[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 시작 전원 끄기 디스크
수동으로 활성화하면 작동하지만 종료 시에는 작동하지 않습니다. 도움을 주시면 정말 감사하겠습니다.