触发systemd的udev规则

Modified on: Fri, 13 Jul 2018 14:39:00 +0800

我有一个那些具有非常积极的电源管理的硬盘。为了防止加载周期上升到临界数,我写了一个udev规则:

SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}=="TOSHIBA MK2555GS", RUN+="/usr/bin/hdparm -B 200 /dev/%k"

问题是,这个规则不是在我将笔记本从睡眠中唤醒时触发的。因此,我有以下systemd服务:

[Unit] Description=root resume actions After=suspend.target [Service] Type=simple ExecStart=/bin/hdparm -B 200 /dev/sda [Install] WantedBy=suspend.target

我更喜欢ExecStart命令类似/bin/udevadm trigger --subsystem-match="block"。所以我没有明确说明内核名称。如果我手动执行此命令,则会正确调整电源管理,但它不能从systemd服务中运行。
有没有办法做到这一点?顺便说一句我正在使用arch-linux

作者:MoFu

最佳答案

您可以将脚本放在执行hdparm的/usr/lib/systemd/systemd-sleep中。你可以使用hdparm和/dev/disk/by-uuid/代替/dev/sda...

或尝试使用/bin/sh -c "/bin/hdparm -B 200 /dev/disk/by-uuid/XY"


相关问答

添加新评论