无法让 udisksctl 在系统关闭时工作

无法让 udisksctl 在系统关闭时工作

当系统完全关闭时,我正在尝试优雅地关闭连接到 Rock64 SoC PC(类似于 Raspberry Pi)的 HDD,并且我已经设法使用乌迪斯克斯特克命令。我可以完美地手动运行该文件,并且它确实会降低所有磁盘的速度,但是,关闭后它不起作用。

我已在以下位置创建了关闭文件

/lib/systemd/system-shutdown/graceful_disk_shutdown.shutdown

,使其可执行,该文件的内容如下:

#!/bin/bash
exec </dev/null </dev/null 2>/dev/null
export LANG=C LC_ALL=C

# Wait for media to be in idle state.
sync
[ -x /sbin/mdadm ] && /sbin/mdadm --wait-clean --scan

# Function used to power off all SATA disks.
function power_off_disks() {
    for disk in /sys/block/sd* ;
    do
        [ -e $disk ] && /usr/bin/udisksctl power-off -b /dev/${disk##*/}
        sleep 2
    done
}

case "$1" in
    *) 
        power_off_disks
        ;; 
esac

别人举报了这里并被告知使用高清参数相反,这确实对我有用,但它没有回答为什么的问题乌迪斯克特尔不起作用。

有任何想法吗?

答案1

当 systemd 读取 /lib/systemd/system-shutdown 中的脚本时,文件系统已经被卸载并且是只读的。

请参阅此链接“https://unix.stackexchange.com/questions/347275/how-to-run-a-script-at-shutdown-on-debian-9-or-raspbian-8-jessie/347686#347686”作为使用放置在 /usr/local/sbin 中的脚本的服务。

相关内容