Planifier un Mac pour dormir, une seule fois


18

Est-il possible de programmer un Mac pour dormir une seule fois? Je sais que je peux établir un calendrier pour cela, mais je veux en avoir le contrôle.

Donc, de temps en temps, je vais me coucher mais je laisse un fichier en cours de transfert, et je veux que le Mac dorme dans environ une heure. Alors, comment pourrais-je faire cela, sans fixer un calendrier à long terme?


2
Si vous téléchargez dans le Terminal, vous pouvez combiner les deux commandes de la même manière: sudo sh -c 'wget http://download.com/file.zip; pmset sleepnow'La commande sleep ne sera alors exécutée qu'à la sortie de wget.
Overbryd

Réponses:


28

La pmsetcommande de terminal doit faire ce que vous voulez. Ce qui suit mettra l'ordinateur en veille à 23:45:00 le 2 décembre 2014. La commande doit cependant être exécutée à partir d'un compte administrateur:

sudo pmset schedule sleep "12/02/14 23:45:00"

Le format de date MM / JJ / AA ne peut pas être modifié; donc, si vous êtes habitué à un format différent, soyez prudent.

Si vous le faites régulièrement, vous pouvez écrire une fonction et l'enregistrer dans votre ~/.profile:

# Schedule sleep in X minutes, use like: sleep-in 60
function sleep-in() {
  local minutes=$1
  local datetime=`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`
  sudo pmset schedule sleep "$datetime"
}

2
J'obtenais une erreur lors de l'appel de la fonction sleep-in:local:2: not an identifier: 23:35:31. Il s'avère (au moins sur mon installation (zsh)) que vous devez encapsuler cette expression de backtick de date entre guillemets. Faites ainsi:local datetime="`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`"
Matt Dodge

Fonction compagnon pour annuler les function sleep-cancel-all() {\n NUM_OF_SLEEPS=$(pmset -g sched | wc -l)\n if [[ $NUM_OF_SLEEPS -gt 0 ]]; then\n # The first line of output is a header, ignore it.\n NUM_OF_SLEEPS=$(expr $NUM_OF_SLEEPS - 1)\n seq $NUM_OF_SLEEPS | xargs -Iz sudo pmset schedule cancel 0\n fi\n }
périodes de sommeil

7

Par défaut, il n'y a aucun moyen de le faire avec les options que vous avez dans les préférences système.

entrez la description de l'image ici

Mais, vous pouvez le faire à partir de la ligne de commande avec une simple commande:

sleep 10; osascript -e 'tell application "System Events" to sleep'
  • sleep 10suspendre l'exécution de la commande suivante pendant 10 secondes. Si vous voulez des minutes ou des heures, vous devez changer 10 avec le nombre de secondes que vous voulez.
  • osascript -e 'tell application "System Events" to sleep' mettre l'ordinateur en veille.

1
Avec GNU coreutils, sleepaccepte des arguments tels que 10s, 5m, 3hpour les secondes, les minutes et les heures respectivement.
AU

1

Toutes les réponses ci-dessus fonctionnent, mais si vous voulez le faire régulièrement, je recommande le logiciel Power Manager , qui vous permet de définir des temps de veille personnalisés, à la fois pour une seule fois et des événements récurrents très facilement (beaucoup plus facilement que l'utilisation des commandes Terminal Server, dans mon avis). Le logiciel est relativement cher (50 $), mais il y a un essai gratuit de 30 jours avec toutes les fonctionnalités. Vous pouvez également contrôler Power Manager à partir de votre iPhone, ce qui est bien si vous êtes loin de votre ordinateur mais que vous souhaitez le mettre en veille ou éteindre.


1

Pour le contrôle de l'alimentation de votre Mac depuis votre iPhone sur un réseau local, j'ai utilisé Off Remote qui peut également planifier dans les prochaines 24 heures une action système (arrêt, verrouillage, redémarrage, déconnexion, veille) et n'est que de 3 $ dans iOS mais nécessite l'installation d'une application d'assistance supplémentaire sur votre Mac pour recevoir les instructions de l'application iPhone.

Une autre réponse ici suggère d'utiliser le logiciel Power Manager qui coûte 50 $, mais je suggérerais les 36 $ logiciel Keyboard Maestro qui est un peu moins intuitif que Power Manager mais a une plus grande flexibilité au-delà de la gestion de l'alimentation. En recherchant la possibilité de planifier la mise en veille de mon Mac, je me suis souvenu que j'avais cet utilitaire et que je pouvais rapidement faire glisser et déposer les composants de macro dans KM pour créer un script qui s'est arrêté pendant une période de temps définie, puis mettre mon Mac sur sommeil:

script maestro clavier pour mettre Mac en veille après 2 heures

… Il existe également une action au sein de Keyboard Maestro pour planifier également des macros (pour mettre le Mac en veille, arrêter, redémarrer, etc.) à déclencher à des moments précis:

déclencheur maestro du clavier pour macro en fonction de l'heure et des jours de la semaine

Keyboard Maestro est moins cher et beaucoup plus robuste pour développer des macros qui peuvent améliorer l'utilisation de votre Mac, mais il y a un peu plus de courbe d'apprentissage que l'application Power Manager.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.