53 votes

Comment puis-je arrêter automatiquement le système après une durée déterminée ?

Comment puis-je arrêter automatiquement le système après une certaine période de temps personnalisable ?

61voto

Tim Meers Points 643

Ouvrez une fenêtre de terminal et tapez

sudo shutdown -h +60

et remplacez 60 par le nombre de minutes que vous souhaitez.

Plus d'informations ici :

http://ubuntuforums.org/archive/index.php/t-473173.html http://www.linux.org/lessons/beginner/l5/lesson5a.html

9voto

Rob Gray Points 1556
  • Vous pouvez utiliser gshutdown Install gshutdown
  • Après l'installation, il se trouve sous Applications Accessoires GShutdown alt text
  • Jetez également un coup d'œil à ceci méthode .

4voto

Michał Points 111

Parce que le sujet concernant l'arrêt du PC après une certaine période d'inactivité est réorienté à ce sujet, j'expliquerai cette question ici.

J'ai passé beaucoup de temps à résoudre ce problème, et je trouve donc utile de le partager, afin de rendre le même problème plus simple pour les autres. J'ai essayé différents programmes mais ils n'ont pas fonctionné pour moi. short script avec cronjob la meilleure solution.

Tout d'abord, je me réfère au post Arrêt programmé - arrêt après 30 minutes

Je vais le copier ci-dessous et expliquer ensuite les améliorations à apporter pour qu'il fonctionne :

Installer 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 le temps d'inactivité et demande à l'ordinateur de s'éteindre s'il est inactif pendant 30 minutes. 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

Créez un cronjob qui vérifie de temps en temps si le système est resté inactif trop longtemps et si le système est en train de s'éteindre. est resté inactif trop longtemps et s'il est resté inactif pendant plus de 30 minutes, il s'arrêtera. Notez que le cronjob doit être créé pour l'utilisateur root.


Ce script a besoin de 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 on se réfère pour vérifier le temps d'inactivité (pas l'utilisateur root)

DISPLAY=:0 est correct pour un écran de bureau (exécuter env pour lire DISPLAY dans votre situation)

si script est exécuté par OUR_USER La ligne ci-dessus peut être réduite :

idle=`env DISPLAY=:0 xprintidle 2>&1`

Ce thème est décrit http://ubuntuforums.org/showthread.php?t=1069602

si script est exécuté par OUR_USER , shutdown doit être précédée de la mention sudo

sudo shutdown -h now

Mon script a été exécuté à partir de cron par ligne dans le fichier cron :

*/5 * * * * /home/OUR_USER/autoshutdown.sh 
  • toutes les 5 minutes
  • OUR_USER doit être remplacé comme précédemment par l'utilisateur auquel nous nous référons.

Si script n'est pas exécuté par root, il ne faut pas oublier d'ajouter la ligne :

ALL ALL=(ALL) NOPASSWD: /sbin/shutdown 

en sudoers donc arrêt n'aura pas besoin de mot de passe pour être exécutée.


J'ai essayé de tels cronjobs sur 2 distro similaires Lubuntu 12.04.4 RC LXLE 32 bits ( http://www.lxle.net/ )

Dans un système, il ne fonctionne qu'en utilisant le cronjob de la racine défini dans le fichier :

/var/spool/cron/crontabs/root


CAVEAT

Un autre problème est que xprintidle dans mon système a donné des valeurs parfois aléatoires pour moi et parfois logiquement incrémentielle. Le résultat final est que mon système s'éteint généralement au bout de 20 minutes environ, si je fixe la valeur maximale d'inactivité à 30 minutes. Je pense que le coupable est xscreensaver qui ne fonctionne pas comme prévu par les paramètres saisis.

1voto

Emad Habib Points 23

Vous pouvez utiliser

ComplexShutdown https://launchpad.net/complexshutdown

ou EasyShutdown https://launchpad.net/easyshutdown

0voto

Dielson Sales Points 1145

Vous pouvez utiliser sleep pour cela. Ils sont utilisés pour retarder ou interrompre une opération. Combinez cela avec shutdown vous obtenez une minuterie de mise hors tension. Exemple de mise en veille après 1 heure :

sleep 3600 && sudo shutdown now

Vous pouvez également utiliser les mathématiques, par exemple pour éteindre l'appareil au bout de 3 heures :

sleep $((3600*3)) && sudo shutdown now

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X