Execution automatique d'une commande en root au démarrage

Bonjours à tous.

J’ai (encore) une question à laquelle je n’ai pas trouvé de réponse claire en cherchant par moi même :

J’ai besoin de lancer une commande qui nécessite les droits de root à chaque démarrage, sortie de veille ou d’hibernation, seulement lorsque le PC est branché au secteur, et pas sur batterie.

Je ne sais pas comment faire cela. Probablement un script en bash, à mettre quelque part dans un des dossiers de démarrage, mais lequel et comment faire pour qu’il ne s’exécute que si l’ordinateur est sur batterie?

Il s’agit d’une commande de gestion de la fréquence de parcage des têtes du disque dur, qui à priori permet d’allonger la durée de vie de celui ci en imposant un parcage très rare des têtes :

hdparm -B 254 /dev/sda

… J’avais pris l’habitude d’utiliser cette fonction sur Ubuntu au moment où il y avait eu une rumeur que les distribution Gnu/Linux en général usaient plus vite les disques que Windows… Je ne sais pas si quelque chose à été changé dans les noyaux plus récents, mais ce qui est sûr, c’est que si je ne lance pas cette commande, j’entends régulièrement des cliquetis provenant de mon disque dur :confused:

Actuellement, je lance la commande manuellement à chaque fois : c’est lourd!

Merci d’avance!

dans
/etc/rc.local
avant le exit 0

ou
placer un script dans /etc/init.d/mon_script
et
update-rc.d mon_script defaults
(copie un script existant pour exemple)

Bonsoir,

Je pense que le plus simple et d’installer laptop-mode-tools.

Il permet la gestion de l’énergie sur un portable suivant si tu est sur batterie ou pas.
En gros tu peux faire plein de chose: ex mettre en veille tes usbs, diminuer la puissance de la carte wifi … et configurer hdparm suivant sur batterie ou pas.

Y a des fichiers de conf tout y est.
Je l’utilise et sa fonctionne bien.

Je suis également intéressé, merci pour l’info :slightly_smiling:

Salut,

[quote]
J’ai besoin de lancer une commande qui nécessite les droits de root à chaque démarrage, sortie de veille ou d’hibernation, seulement lorsque le PC est branché au secteur, et pas sur batterie.

Je ne sais pas comment faire cela. Probablement un script en bash, à mettre quelque part dans un des dossiers de démarrage, mais lequel et comment faire pour qu’il ne s’exécute que si l’ordinateur est sur batterie?[/quote]

Il y a là comme une contradiction :slightly_smiling:

[quote=“dchost99”]placer un script dans /etc/init.d/mon_script
et
update-rc.d mon_script defaults
(copie un script existant pour exemple)[/quote]
J’ajouterai juste qu’avant d’écrire un tel script il est recommandé de lire la partie du Debian Policy Manual qui y fait référence afin de faire quelque chose de propre.

rc.local* ne fonctionnera pas en sortie d’hibernation, je parle en connaissance de cause (ventilo pour ma part, fancontrol marche mal malgré les réglages…), et le manuel Debian ne dit rien à ce sujet - en revanche pm-utils il est capable de le faire : viewtopic.php?p=240710#p240710

  • et je pense qu’aucun initscript est lancé en retour d’hibernation, vu qu’au retour la mémoire est simplement “remise en place” à partir de la swap, d’où l’interêt de pm-utils. </captain_obvious>

[quote=“Knucky”]rc.local* ne fonctionnera pas en sortie d’hibernation, je parle en connaissance de cause (ventilo pour ma part, fancontrol marche mal malgré les réglages…), et le manuel Debian ne dit rien à ce sujet - en revanche pm-utils il est capable de le faire : viewtopic.php?p=240710#p240710

  • et je pense qu’aucun initscript est lancé en retour d’hibernation, vu qu’au retour la mémoire est simplement “remise en place” à partir de la swap, d’où l’interêt de pm-utils. </captain_obvious>[/quote]
    On pourrait imaginer un initscript consacré à l’hibernation, non ? Mais bon ça fait beaucoup de ressources sacrifiées pour rien. C’est moche comme solution je l’avoue.

[quote=“Cluxter”]
On pourrait imaginer un initscript consacré à l’hibernation, non ? Mais bon ça fait beaucoup de ressources sacrifiées pour rien. C’est moche comme solution je l’avoue.[/quote]
Oui ce genre de choses est possible en bricolant. Il faut modifier les droits de /sys/power/state dans le fichier /etc/sysfs.conf (paquet sysfsutils) pour que tu puisses avoir des droits d’écriture sur /sys/power/state, puis tu peux faire un script comme ceci:

#!/bin/sh
# verouiller l'écran
xlock -c blank &
# l'hibernation en elle même
echo "disk" > /sys/power/state 
# ce que tu fais en retour d'hibernation:
xmessage $(date)

Je détaille pas plus vu le caractère un peu “olé olé” de la méthode, sinon je vais encore me faire disputer :stuck_out_tongue:

Merci pour les conseils, finalement j’ai opté pour le laptop mode.

J’espère que les réglages seront bons. On verra bien.

Bon, je sauvegarde mon disque souvent, mais ça m’ennuierait tout de même de le griller bêtement.

Là où j’ai des doutes, c’est que je l’ai activé dans tous les cas : sur batterie avec hdparm -B = 190, sur secteur à 254…

Bref, ça doit être bon.

Désolé pour la réponse tardive : je suis assez débordé ces temps ci.