J'ai eu le même problème, aucune des solutions ici ne convenait à mes besoins. L'utilisation de cron est vraiment une solution de contournement, pas une solution, les règles udev sont exécutées lorsque l'alimentation est connectée / déconnectée mais pas après la suspension / la reprise et pm-utils
ne sont plus utilisées par défaut dans Fedora 19 lorsque vous fermez par exemple le couvercle de votre ordinateur portable.
Étant donné qu'il systemd
est désormais responsable de la suspension / de l'hibernation, je pense que la seule façon appropriée de gérer cette situation est de créer une systemd
unité qui fonctionnera à la fois après le démarrage et après la reprise de la suspension.
Remarques:
- En utilisant
/dev/disk/by-id/...
au lieu de /dev/sda
, vous êtes toujours sûr d'obtenir le bon disque (sda, b, c dépend de l'ordre dans lequel ils sont détectés par le noyau)
- Vous pouvez avoir plusieurs
ExecStart
lignes pour configurer plusieurs disques
Voici l'unité que j'ai écrite:
[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
Enregistrez ce fichier sous /etc/systemd/system/hdsilence.service
, puis activez-le en utilisant:
systemctl enable hdsilence.service
systemctl daemon-reload
Krzysztof Adamski
la source
Vous pouvez demander au système d'exécuter la commande lors du démarrage en créant votre propre service systemd ou en ajoutant la commande à /etc/rc.d/rc.local.
Si vous souhaitez que la commande s'exécute à chaque fois que vous réveillez le système après la mise en veille / veille prolongée, vous pouvez ajouter un script commençant par 2 chiffres dans /etc/pm/sleep.d/, consultez les autres scripts dans / usr / lib64 / pm-utils / sleep.d (en supposant x86_64) pour plus de détails. Fondamentalement, il prend un paramètre en fonction de l'état dans lequel il entre. Vous devrez peut-être également ajouter une connexion à power.d / dans le même répertoire parent si vous souhaitez fonctionner différemment sur batterie par rapport à la connexion.
la source
creating your own systemd service
Peux-tu être plus précis? Je n'ai pas de fichier /etc/rc.d/rc.local./etc/rc.d/rc.local
fichier n'est qu'un script shell, créez-le et assurez-vous de son exécutable.Pour différents paramètres lors de l'exécution sur AC / batterie, je le ferais via une
udev
règle simple , par exemple/etc/udev/rules.d/98-apmsettings.rules
:Cela mis
apm
à254
quand l'ordinateur portable est branché et respectivement128
lorsqu'il est débranché. En outre, cela devrait toujours fonctionner, même après la reprise de la suspension.la source
hdparm
en/usr/sbin
, de sorte que les chemins régler.J'ai le même disque (et le même problème). Ma solution stupide mais fonctionnelle: je l'ai mise dans
/etc/crontab
:la source
Les règles udev fonctionnent bien sur les événements de plug, mais pour obtenir le comportement correct après la reprise de la suspension, j'ai besoin de quelque chose comme ceci dans
/etc/pm/sleep.d
:la source