Eu tive o mesmo problema, nenhuma das soluções aqui atendeu às minhas necessidades. Usar o cron é realmente uma solução alternativa, não uma solução, as regras do udev são executadas quando a energia é conectada / desconectada, mas não após a suspensão / retomada e pm-utils
não são mais usadas por padrão no Fedora 19 quando você, por exemplo, fecha a tampa do seu laptop.
Como systemd
agora é responsável por suspender / hibernar, acho que a única maneira adequada de lidar com essa situação é criar uma systemd
unidade que será executada após a inicialização e depois de retomar a suspensão.
Notas:
- Ao usar em
/dev/disk/by-id/...
vez de /dev/sda
, você sempre terá o disco certo (sda, b, c depende da ordem em que são detectados pelo kernel)
- Você pode ter várias
ExecStart
linhas para configurar vários discos
Aqui está a unidade que escrevi:
[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
Salve este arquivo como /etc/systemd/system/hdsilence.service
e, em seguida, habilite-o usando:
systemctl enable hdsilence.service
systemctl daemon-reload
Você pode fazer com que o sistema execute o comando durante a inicialização, criando seu próprio serviço systemd ou adicionando o comando ao /etc/rc.d/rc.local.
Se você deseja que o comando seja executado sempre que ativar o sistema após suspensão / hibernação, você pode adicionar um script que comece com 2 dígitos a /etc/pm/sleep.d/, veja os outros scripts em / usr / lib64 / pm-utils / sleep.d (assumindo x86_64) para obter mais detalhes. Basicamente, é necessário um parâmetro, dependendo do estado em que está entrando. Também pode ser necessário adicionar algum login ao power.d / no mesmo diretório pai, se você deseja operar de maneira diferente com a energia da bateria, em comparação com quando conectado.
fonte
creating your own systemd service
você pode ser mais específico? Não tenho um arquivo /etc/rc.d/rc.local./etc/rc.d/rc.local
arquivo é apenas um script de shell, crie-o e verifique se é executável.Para configurações diferentes ao executar com AC / bateria, eu faria isso através de uma
udev
regra simples , por exemplo/etc/udev/rules.d/98-apmsettings.rules
:Este seria definido
apm
para254
quando o laptop está conectado e, respectivamente,128
quando desconectado. Além disso, ele sempre deve funcionar, mesmo após o retorno da suspensão.fonte
hdparm
na/usr/sbin
, então ajustar os caminhos.Eu tenho o mesmo disco (e o mesmo problema). Minha solução estúpida, mas funcional: coloquei isso em
/etc/crontab
:fonte
As regras do udev funcionam bem em eventos de plug-in, mas para obter o comportamento correto após o resumo da suspensão, preciso de algo como
/etc/pm/sleep.d
:fonte