web-dev-qa-db-fra.com

Pourquoi hd-idle at-il besoin de Sudo pour fonctionner dans rc.local?

J'ai ajouté une commande qui exécute "hd-idle". Il semble nécessaire de s’exécuter en tant qu’utilisateur root, faute de quoi les disques ne seront pas arrêtés comme indiqué. Le comportement semble être le même lorsqu'il est exécuté manuellement ou via rc.local. hd-idle a été compilé avec make install, par opposition à installé avec apt-get si c'est important.

Pour une autre question sur ce site, je sais que rc.local s’exécute en tant que root. Pourquoi dois-je toujours ajouter Sudo pour que mon disque dur tourne au ralenti?

2 dernières lignes de rc.local:

Sudo hd-idle -i 300

exit 0;

Le fichier rc.local ci-dessus fonctionne comme prévu et les disques durs passent en mode veille après 300 secondes. Si je supprime "Sudo" et redémarre, les disques durs ne s'arrêtent jamais.

6
DominicM

hd-idle nécessite que root utilise les fichiers de/proc/diskstats, car/proc/et/dev/appartenant à root.

Je ne conseillerais pas de changer de propriétaire, mais vous pouvez peut-être ajouter votre compte d'utilisateur au groupe de numérotation.

$Sudo usermod -a -G dialout <user-name>

Ensuite, vous pouvez essayer de faire des choses comme accéder à du matériel

Vous pouvez également essayer de modifier les autorisations de groupe sur/proc/diskstats pour inclure le groupe de numérotation. (Je ne conseille pas ceci. Mais vous pouvez l'essayer)

Je pense que certaines des fonctionnalités de journalisation écrivent dans/var/log/hd-idle, qui appartient également à root.

Je pense que vous pouvez modifier le source et ajouter un utilisateur au groupe diaout pour que ce logiciel fonctionne en tant qu'utilisateur non explicitement root, mais je recommande la prudence.

Réponse tirée du code source hd-idle.

1
j0h