Comment puis-je éteindre automatiquement le système après un certain temps personnalisable?
Ouvrez une fenêtre de terminal et tapez:
Sudo shutdown -h +60
et remplacez simplement 60 par le nombre de minutes que vous souhaitez prendre.
Plus d'infos ici:
http://ubuntuforums.org/archive/index.php/t-473173.htmlhttp://www.linux.org/lessons/beginner/l5/lesson5a.html
Parce que le sujet après avoir arrêté l'ordinateur après une certaine période d'inactivité est redirigé vers ce sujet, je vais expliquer ce problème ici.
J'ai passé beaucoup de temps à résoudre ce problème, je trouve donc utile de le partager, de simplifier le même problème pour les autres. J'ai essayé différents programmes, mais ils ne fonctionnent pas pour moi. J'ai donc trouvé l'utilisation d'un court script avec cronjob la meilleure solution.
Premièrement, je me suis référé à post Timed Shutdown - arrêt après 30 minutes
Je vais le copier ci-dessous, puis expliquer les améliorations pour que cela fonctionne:
Installez xprintidle. Cet outil donne le temps d'inactivité d'un utilisateur.
Sudo apt-get install xprintidle
Créez un script autoshutdown.sh qui vérifie la durée d'inactivité et demande à l'ordinateur de s'éteindre s'il est inactif pendant 30 minutes.
idle=$(xprintidle) if [ $idle -gt 1800000 ]; then shutdown -h now fi
Faites un cronjob pour cela, qui vérifie de temps en temps si le système est resté inactif pendant trop longtemps et s’il est resté inactif pendant plus de 30 minutes, il s’arrêtera. Notez que le travail cron doit être créé pour l'utilisateur root.
Ce script nécessite quelques améliorations pour fonctionner, comme par exemple:
idle=`env DISPLAY=:0 su OUR_USER -c xprintidle 2>&1`
OUR_USER
est l'utilisateur auquel nous nous référons pour vérifier le temps d'inactivité (utilisateur root)
DISPLAY=:0
est correct pour un affichage sur le bureau (exécutez la commande env
pour lire DISPLAY
dans votre cas)
si le script est exécuté par OUR_USER
, la ligne ci-dessus peut être réduite:
idle=`env DISPLAY=:0 xprintidle 2>&1`
Ce sujet est décrit http://ubuntuforums.org/showthread.php?t=1069602
si le script est exécuté par OUR_USER
, la commande shutdown
doit être précédée de Sudo
Sudo shutdown -h now
Mon script a été exécuté depuis cron par ligne dans le fichier cron:
*/5 * * * * /home/OUR_USER/autoshutdown.sh
Si le script n'est pas exécuté par la racine, nous devrions nous rappeler d'ajouter la ligne:
ALL ALL=(ALL) NOPASSWD: /sbin/shutdown
dans sudoers , la commande de shutdown n'aura donc pas besoin de mot de passe pour être exécutée.
J'ai essayé de telles tâches sur deux distributions similaires . Lubuntu 12.04.4 RC LXLE 32 bits ( http://www.lxle.net/ )
Dans un système, cela ne fonctionne qu'avec la racine cronjob définie dans le fichier:
/ var/spool/cron/crontabs/root
Un autre problème est que xprintidle dans mon système m'a donné des valeurs parfois aléatoires et parfois logiquement incrémentielles. Le résultat final - mon système a généralement été arrêté après 20 minutes, peut-être si je règle la valeur d'inactivité maximale à 30 minutes. Je pense que le coupable est xscreensaver qui ne fonctionne pas tel que défini par les paramètres entrés.
Vous pouvez utiliser
ComplexShutdown https://launchpad.net/complexshutdown
ou EasyShutdown https://launchpad.net/easyshutdown