Tuve el mismo problema, ninguna de las soluciones aquí satisfizo mis necesidades. El uso de cron es realmente una solución alternativa, no una solución, las reglas de udev se ejecutan cuando se conecta / desconecta la alimentación, pero no después de suspender / reanudar y pm-utils
ya no se usan de manera predeterminada en Fedora 19 cuando, por ejemplo, cierra la tapa de su computadora portátil.
Como systemd
ahora es responsable de suspender / hibernar, creo que la única forma adecuada de manejar esta situación es crear una systemd
unidad que se ejecute tanto después del arranque como después de reanudar la suspensión.
Notas:
- Al usar en
/dev/disk/by-id/...
lugar de /dev/sda
, siempre está seguro de obtener el disco correcto (sda, b, c depende del orden en que el núcleo los detecte)
- Puede tener varias
ExecStart
líneas para poder configurar múltiples discos
Aquí está la unidad que escribí:
[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
Guarde este archivo como /etc/systemd/system/hdsilence.service
y luego habilítelo usando:
systemctl enable hdsilence.service
systemctl daemon-reload
Puede hacer que el sistema ejecute el comando durante el arranque creando su propio servicio systemd o agregando el comando a /etc/rc.d/rc.local.
Si desea que el comando se ejecute cada vez que activa el sistema después de dormir / hibernar, puede agregar un script que comience con 2 dígitos a /etc/pm/sleep.d/, mire los otros scripts en / usr / lib64 / pm-utils / sleep.d (suponiendo x86_64) para más detalles. Básicamente, toma un parámetro dependiendo de qué estado está ingresando. Es posible que también deba agregar algún inicio de sesión a power.d / en el mismo directorio principal si desea operar de manera diferente con la batería en comparación con cuando está enchufado.
fuente
creating your own systemd service
¿Puedes ser mas específico? No tengo un archivo /etc/rc.d/rc.local./etc/rc.d/rc.local
archivo es solo un script de shell, créelo y asegúrese de que sea ejecutable.Para diferentes configuraciones cuando se ejecuta con CA / batería, lo haría a través de una
udev
regla simple , por ejemplo/etc/udev/rules.d/98-apmsettings.rules
:Esto establecería
apm
para254
cuando el portátil está conectado y, respectivamente,128
cuando se desconecta. Además, siempre debería funcionar, incluso después de reanudar la suspensión.fuente
hdparm
en/usr/sbin
, por lo que ajustar los caminos.Tengo el mismo disco (y el mismo problema). Mi solución estúpida pero funcional: he puesto eso en
/etc/crontab
:fuente
Las reglas de udev funcionan bien en los eventos de conexión, pero para obtener el comportamiento correcto después de reanudar la suspensión, necesito algo como esto en
/etc/pm/sleep.d
:fuente