当系统完全关闭时,我正在尝试优雅地关闭连接到 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 中的脚本的服务。