41 votes

Comment puis-je mettre en veille/suspendre depuis la ligne de commande et le faire à un moment spécifique

J'ai réussi à trouver comment suspendre / mettre en hibernation le système à partir de la ligne de commande en lisant Comment puis-je suspendre / mettre en hibernation à partir de la ligne de commande?.

Cependant, j'aimerais savoir comment utiliser la ligne de commande pour suspendre / mettre en hibernation à un moment donné, en termes absolus (par exemple, 23h) ou relatifs (par exemple, dans 30 minutes).

Je sais déjà comment faire cela avec l'arrêt, mais je ne suis pas sûr si la commande est similaire.

47voto

Eliah Kagan Points 111731

Vous pouvez utiliser la at commande pour planifier n'importe quelle action, y compris l'exécution des commandes détaillées dans cette question.

Par exemple, si vous voulez hiberner dans 30 minutes:

echo 'pmi action hibernate' | at now + 30 min

Ou si vous voulez suspendre à 23h00:

echo 'pmi action suspend' | at 23h00

Si vous avez besoin d'exécuter une commande en tant que root, exécutez at avec sudo plutôt que la commande elle-même avec sudo (puisque sudo ne devrait être exécuté que de manière interactive, sauf si vous l'avez configuré pour ne pas demander votre mot de passe). Par exemple, les équivalents des commandes ci-dessus en utilisant pm-hibernate et pm-suspend sont:

echo pm-hibernate | sudo at now + 30 min

echo pm-suspend | sudo at 23h00

13voto

edvaldig Points 1432

Pour une spécification relative (par exemple "après 30 minutes"), vous pouvez simplement utiliser la commande sleep pour faire attendre la commande de suspension/hibernation.


Exemples:

Attendre 30 minutes, puis suspendre :

sudo sleep 30m; sudo pm-suspend

Attendre 1 heure, puis hiberner :

sudo sleep 1h; sudo pm-hibernate

5voto

cprofitt Points 6545

Pour des horaires spécifiques répétés - comme l'arrêt des ordinateurs à une heure spécifique chaque jour. utilisez cron.

crontab -e

ajoutez ce qui suit :

15 14 1 * * pmi action suspend

Si vous voulez le personnaliser.

* * * * * commande à exécuter
- - - - -
| | | | |
| | | | ----- Jour de la semaine (0 - 7) (Dimanche=0 ou 7)
| | | ------- Mois (1 - 12)
| | --------- Jour du mois (1 - 31)
| ----------- Heure (0 - 23)
------------- Minute (0 - 59)

Pour une tâche ponctuelle, utilisez la commande at

Par exemple, si vous voulez hiberner dans 30 minutes :

echo 'pmi action hibernate' | at now + 30 min

Ou si vous voulez suspendre à 23h :

echo 'pmi action suspend' | at 23h

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