web-dev-qa-db-fra.com

Comment puis-je hiberner / suspendre à partir de la ligne de commande et le faire à un moment précis

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

Cependant, je voudrais savoir comment utiliser la ligne de commande pour suspendre/mettre en veille à un moment donné, en termes absolus (exemple, 11:00) ou relatifs (exemple, en 30 minutes).

Je sais déjà comment faire cela avec shutdown, mais je suis certain que la commande est similaire.

34
Ederico

Vous pouvez utiliser la commande atNAME _ pour planifier toute action, y compris l'exécution des commandes détaillées dans cette question .

Par exemple, si vous souhaitez passer en hibernation dans 30 minutes:

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

Ou si vous souhaitez suspendre à 23h00:

echo 'pmi action suspend' | at 11pm

Si vous devez exécuter une commande sous le nom root_, exécutez atavec Sudoplutôt que la commande elle-même avec Sudo(puisque Sudone devrait être exécutée que de manière interactive, à moins que vous ne l'ayez configurée pour ne pas demander votre mot de passe). Par exemple, les équivalents des commandes ci-dessus utilisant pm-hibernate et pm-suspend sont les suivants:

echo pm-hibernate | Sudo at now + 30 min

echo pm-suspend | Sudo at 11pm

41
Eliah Kagan

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


Exemples:

Attendez 30 minutes, puis suspendez:

Sudo sleep 30m; Sudo pm-suspend

Attendez 1 heure, puis hiberner:

Sudo sleep 1h; Sudo pm-hibernate
7
Eenoku

Pour des heures spécifiques répétées - comme arrêter des ordinateurs sont 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.

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

Pour un travail unique nous la commande à

Par exemple, si vous souhaitez passer en hibernation dans 30 minutes:

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

Ou si vous souhaitez suspendre à 23h00:

echo 'pmi action suspend' | at 11pm
4
cprofitt