Saya memiliki masalah yang sama tidak ada solusi di sini yang sesuai dengan kebutuhan saya. Menggunakan cron benar-benar merupakan solusi, bukan solusi, aturan udev dijalankan ketika daya terhubung / terputus tetapi tidak setelah ditangguhkan / dilanjutkan dan pm-utils
tidak lagi digunakan secara default di Fedora 19 ketika Anda misalnya menutup laptop Anda.
Karena systemd
sekarang bertanggung jawab untuk menangguhkan / berhibernasi, saya pikir satu-satunya cara yang tepat untuk menangani situasi ini adalah dengan membuat systemd
unit yang akan berjalan baik setelah boot dan setelah melanjutkan dari suspend.
Catatan:
- Dengan menggunakan
/dev/disk/by-id/...
alih-alih /dev/sda
, Anda selalu yakin untuk mendapatkan disk yang tepat (sda, b, c tergantung pada urutan mereka terdeteksi oleh kernel)
- Anda dapat memiliki banyak
ExecStart
baris sehingga Anda dapat mengonfigurasi beberapa disk
Inilah unit yang saya tulis:
[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
Simpan file ini sebagai /etc/systemd/system/hdsilence.service
dan kemudian aktifkan menggunakan:
systemctl enable hdsilence.service
systemctl daemon-reload
Anda dapat meminta sistem menjalankan perintah saat boot dengan membuat layanan systemd Anda sendiri atau menambahkan perintah ke /etc/rc.d/rc.local.
Jika Anda ingin perintah dijalankan setiap kali Anda membangunkan sistem setelah tidur / hibernasi, Anda dapat menambahkan skrip yang dimulai dengan 2 digit ke /etc/pm/sleep.d/, lihat skrip lain di / usr / lib64 / pm-utils / sleep.d (dengan anggapan x86_64) untuk detail lebih lanjut. Pada dasarnya, dibutuhkan parameter tergantung pada negara mana yang dimasukkan. Anda mungkin juga perlu menambahkan beberapa login ke power.d / di direktori induk yang sama jika Anda ingin beroperasi secara berbeda pada daya baterai dibandingkan dengan ketika dicolokkan.
sumber
creating your own systemd service
Bisakah Anda lebih spesifik? Saya tidak punya file /etc/rc.d/rc.local./etc/rc.d/rc.local
file hanya shell script, membuat dan pastikan yang executable.Untuk pengaturan yang berbeda saat menggunakan AC / baterai, saya akan melakukannya melalui
udev
aturan sederhana , misalnya/etc/udev/rules.d/98-apmsettings.rules
:Ini akan diatur
apm
ke254
saat laptop dicolokkan dan masing-masing128
saat dicabut. Juga, itu harus selalu bekerja, bahkan setelah melanjutkan dari penangguhan.sumber
hdparm
di/usr/sbin
, jadi sesuaikan jalan.Saya memiliki disk yang sama (dan masalah yang sama). Solusi bodoh tapi berhasil saya: Saya telah memasukkan itu ke dalam
/etc/crontab
:sumber
Aturan udev bekerja dengan baik pada peristiwa plug, tetapi untuk mendapatkan perilaku yang benar setelah melanjutkan dari penangguhan, saya perlu sesuatu seperti ini di
/etc/pm/sleep.d
:sumber