Je reviens à vous parce que j’ai un petit soucis concernant la salle Raspberry que je gère au lycée : je trouve régulièrement des postes carrément allumés après utilisation des classes et je me disais qu’il serait bien d’ajouter un petit programme auto-exécuté au démarrage qui ferait s’éteindre la raspberry (ou au moins la mettre en veille) au bout de 30 minutes d’inactivité du poste.
Je me demande quelle est la solution optimale, peut-on lancer un simple script bash au démarrage pour faire cela ou faut-il auto-lancer un programme en python par exemple, en tâche de fond ?
Merci pour l’info, en effet c’est sobre et au moins ça aura le mérite d’éteindre les machines pour la (soirée et la) nuit. Une extinction à 18h, c’est un bon plan. Je vais expérimenter ça et je l’incluerai dans la prochaine maj. Je te remercie du tuyau !
Malgré mes innombrables essais je ne suis pas parvenu à faire fonctionner crontab. Un blocage quelque part sans doute.
J’ai mis en place mon idée avec une solution plus classique :
Créer dans le dossier /home/pi/.config/autostart/ un fichier
« arretj.desktop » (attention le « .desktop » est obligatoire) qui contient :
[Desktop Entry] Type=Application Name=arrêt auto de la raspberry Comment= Eteindre une raspberry laissée alumée NoDisplay=true Exec=/sbin/shutdown -P 18:00
qui a pour effet d’éteindre la raspberry tous les jours à 18:00 par la commande directe « shutdown ».
Voilà. Pour recoller à mon cas : une salle de lycée équipée en raspberries autonomes, écrire ce programme sous compte administrateur pi et le copier (en sudo) dans le dossier « eleve »
Ainsi les élèves n’ont pas accès à la modification de ce fichier (car non propriétaires).
Petite modification du script, parce que je me suis aperçu que, ne me demandez pas pourquoi, Raspbian retient que dans le cas d’une extinction propre, il n’a pas exécuté la commande shutdown -P 18:00.
Du coup il l’exécute une minute après le démarrage suivant ! Ce qui est très gênant, vous en conviendrez.
Il faut donc ajouter au script, préalablement, une annulation de commande shutdown avant de lancer la suivante.
Cela donne :
[Desktop Entry] Type=Application Name=arrêt auto de la raspberry Comment= Eteindre une raspberry laissée alumée NoDisplay=true Exec=/sbin/shutdown -c Exec=/sbin/shutdown -P 18:00
Remarque : les essais avec une commande Exec en une seule ligne et l’esperluette « && » n’ont pas fonctionné.
si ça t’intéresse toujours j ai (enfin ! ) trouvé la manière de « ruser » pour faire le shutdown par cron !
le truc c’est de créer un cron pour root:
sudo crontab -e -u root
puis l editeur vi par exemple
puis a la fin des commentaires :
o
puis :
00 19 * * * /sbin/shutdown - h now
puis esc
puis x
et boum ça shutdown a 19Hrs sauf le dimanche vu que la machine n’est pas démarrée ( ok je sors )
Super ! J’avais l’intention d’aller retravailler ce crontab, donc merci. Ca reste curieux parce qu’ils disent bien qu’un utilisateur peut créer sa propre crontab, qui devrait par conséquent au moins fonctionner sur le compte utilisateur en question. Bon, un mystère de plus, sûrement un déverrouillage à faire quelque part.
oui vraiment bizarre ! on peut faire le shutdown sans sudo avec le user « pi » mais pour le cron ça fonctionne pas ! et pour tout « simplifier » le /sbin/shutdown est en fait un lien vers /bin/systemctl …
On peut pas dire que le passage a systemd ait rendu les choses plus simple ! il est probable que l’explication soit dans le( les ?) fichier qui configure systemctl…
Comment faites vous pour lancer la commande shutdown avec le user pi sans sudo ?
Je viens de faire le test avec mon pi, voilà ce qu’il me dit:
pi@raspberrypi:~ $ shutdown -Ph now
Failed to set wall message, ignoring: Interactive authentication required.
Failed to power off system via logind: Interactive authentication required.
Failed to open initctl fifo: Permission denied
Failed to talk to init daemon.
je ne sais pas non plus mais je confirme que sur mon système ça marche !
j’utilise un Rpi 4 sous raspbian buster avec LXDE et je fais sudo pour les commandes qui demande d être root …
il ,est possible que j’ai bidouillé un truc mais j’ai pas retrouver quoi !
PS: j’ai fait le test sur un Rpi3 aussi sous buster et lxde même chose !
donc peu probable que j’ai fait une bidouille identique sur les deux …
Je confirme aussi qu’il n’y a pas besoin de taper ‹ sudo › sous compte pi pour exécuter des commandes qui devraient le demander. Toutes mes pi 3 b+ sont dans ce cas et elles sont toutes sous raspbian stretch (dernière version). Ce qui pose un problème de sécurité, c’est pourquoi j’ai rendu le compte pi inaccessible au lycée (mot de passe que presque personne ne connait).