Nous avons plusieurs centaines de machines Ubuntu 20.04 qui ne sont pas attribuées à un utilisateur précis.
Nous voulons éteindre automatiquement ces machines après une période d'inactivité.
Critères :
sleepd
est packagé dans Debian GNU/Linux, mais il ne l'est plus dans Ubuntu après la version 14.04.
Le paquet Debian fonctionne très bien sur Ubuntu :
apt download sleepd
depuis une machine Debian ;apt install libx86-1 pm-utils vbetool
sur une machine Ubuntu afin d'installer les dépendances ;dpkg -i sleepd_2.10_amd64.deb
;/etc/default/sleepd
: « -u » pour le délai avant action ; « -s /sbin/poweroff » pour éteindre la machine au lieu de la mettre en veille ; « -w » pour comptabiliser également l'activité sur d'éventuelles sessions SSH ;systemctl restart sleepd
.autopoweroff. Trop complet pour notre usage (il peut vérifier la consommation CPU et la joignabiltié de machines dont celle-ci dépend avant d'exécuter une action) donc fichier de configuration plus touffu.
CRON. Au début, je voulais écrire une tâche planifiée qui aurait tourné toutes les heures non-ouvrées et qui aurait utilisé la commande w
pour déterminer si des utilisateurs ont eu une activité récente avant d'éteindre. Deux inconvénients : 1) pourquoi réinventer la roue ? ; 2) si l'on veut désactiver l'arrêt automatique lors d'une maintenance, il faut commenter le contenu d'un fichier, ce qui est moins pratique que systemctl stop sleepd
.