Tôi đã có cùng một vấn đề không có giải pháp nào ở đây phù hợp với nhu cầu của tôi. Sử dụng cron thực sự là một cách giải quyết, không phải là giải pháp, các quy tắc udev được chạy khi nguồn được kết nối / ngắt kết nối nhưng không phải sau khi tạm dừng / nối lại và pm-utils
không còn được sử dụng theo mặc định trong Fedora 19 khi bạn ví dụ đóng nắp máy tính xách tay.
Vì systemd
hiện tại chịu trách nhiệm tạm dừng / ngủ đông, tôi nghĩ rằng cách duy nhất thích hợp để xử lý tình huống này là tạo một systemd
đơn vị sẽ chạy cả sau khi khởi động và sau khi tiếp tục tạm dừng.
Ghi chú:
- Bằng cách sử dụng
/dev/disk/by-id/...
thay vì /dev/sda
, bạn luôn chắc chắn lấy đúng đĩa (sda, b, c tùy thuộc vào thứ tự chúng được phát hiện bởi kernel)
- Bạn có thể có nhiều
ExecStart
dòng để bạn có thể cấu hình nhiều đĩa
Đây là đơn vị tôi đã viết:
[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
Lưu tệp này dưới dạng /etc/systemd/system/hdsilence.service
và sau đó kích hoạt nó bằng cách sử dụng:
systemctl enable hdsilence.service
systemctl daemon-reload