私は同じ問題を抱えていましたが、ここでの解決策はどれも自分のニーズに合いませんでした。cronの使用は実際には回避策であり、ソリューションではありません。udevルールは、電源が接続/切断されたときに実行されますが、一時停止/再開後は実行pm-utils
されません。たとえば、ラップトップの蓋を閉じると、Fedora 19ではデフォルトで使用されなくなります。
以来systemd
、今/停止冬眠する責任があり、私はこのような状況に対処するための唯一の適切な方法を作成することであると考えてsystemd
ブートした後、サスペンドからの復帰後の両方で実行されますユニットを。
ノート:
- の
/dev/disk/by-id/...
代わりにを使用することにより/dev/sda
、常に正しいディスクを確実に取得できます(sda、b、cはカーネルによって検出される順序に依存します)
- 複数の
ExecStart
回線を設定できるため、複数のディスクを構成できます
これが私が書いたユニットです:
[Unit]
Description=Silence HD
After=suspend.target
[Service]
Type=oneshot
# Disable automatic head parking for the main disk
ExecStart=/sbin/hdparm -B 254 /dev/disk/by-id/ata-ST3250824AS_4N127FD1
# Enable automatic spin down after 30 seconds for the second, infrequently used disk
ExecStart=/sbin/hdparm -S 6 /dev/disk/by-id/ata-ST31000528AS_BVP5H5X1
[Install]
WantedBy=suspend.target basic.target
このファイルを名前を付けて保存し/etc/systemd/system/hdsilence.service
、次を使用して有効にします。
systemctl enable hdsilence.service
systemctl daemon-reload