54 votes

Comment puis-je mettre l'écran en veille depuis le terminal ?

J'aimerais pouvoir éteindre mon écran à partir de la ligne de commande.

Je sais qu'il y a le raccourci clavier ctrl + + mais je veux le faire depuis un shell script ou à distance.

Y a-t-il un moyen ?

0 votes

0 votes

Vous pouvez également lire ceci : stackoverflow.com/questions/1239439/

84voto

Sarah G Points 935

Dans OS X 10.9, vous pouvez simplement faire pmset displaysleepnow . Cela éteindra immédiatement votre écran sans modifier aucun de vos paramètres ni mettre en veille l'hôte tout entier.

L'escalade des privilèges ne semble pas nécessaire (du moins avec les versions récentes d'OS X), mais si vous recevez un message concernant des privilèges inadéquats, vous pouvez faire ce qui suit sudo pmset displaysleepnow .

D'après les réactions des commentateurs, cette fonction n'est pas disponible dans OS X 10.8 ou antérieur.

22voto

Matt Love Points 6295

Bien que je n'aie pas été en mesure de trouver une commande qui mette l'écran en veille de manière native, il y a une application que vous téléchargez qui le fera. Il y a deux options à partir d'ici.

  1. Installez l'application dans le dossier Applications et, à partir du terminal ou de SSH, exécutez les commandes suivantes open /Applications/Sleep\ Display.app

  2. Faites un clic droit sur l'application dans le dossier Téléchargements et cliquez sur "Afficher le contenu du paquet". Naviguez jusqu'à Contents/MacOS et copier le fichier sleepdisplay.

    Naviguez vers /usr/bin (vous pouvez utiliser le + + G et tapez le répertoire) et collez le fichier binaire. Vous pourrez maintenant taper la commande sleepdisplay dans Terminal ou par SSH et l'écran se mettra immédiatement en veille.

J'espère que cela vous aidera !

8voto

Daniel Points 32917

Le script suivant fera le travail (dans Leopard et les versions ultérieures), mais il doit être exécuté avec sudo :

La prémisse est que pmset peut définir un temps avant la mise en veille de l'affichage, mais le problème est qu'une valeur de 0 désactive la fonction, plutôt que de mettre le délai à zéro, et une valeur de 1 est un délai complet d'une minute. La magie ici est qu'une valeur de 2^31 semble être stockée comme un zéro négatif, qui fonctionne magiquement comme "éteindre l'écran immédiatement".

Dans Tiger et les versions antérieures, un autre nombre magique était nécessaire, car une variable de taille différente était utilisée en interne pour stocker le délai, en minutes, jusqu'à ce que l'affichage s'éteigne.

Cela imite le comportement de control - shift - eject et peut être utilisé sur les MacBook Airs sans un système d'alarme. eject clé.

#!/bin/bash
original_setting=`/usr/bin/pmset -g | /usr/bin/awk '/displaysleep/ {print $2}'`
magic_number=2147483648
/usr/bin/pmset -a displaysleep $magic_number; sleep 1; /usr/bin/pmset -a displaysleep $original_setting

7voto

user16797 Points 331

Voici un simple shell script qui le fera.

#!/usr/bin/env bash
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app

Cette opération exécutera/démarrera les paramètres que vous avez activés pour l'économiseur d'écran sur cet ordinateur.

0 votes

J'aime bien celui-là. J'ai copié/collé ce code dans un fichier /usr/local/bin/ss, chmod +x dessus, et je peux maintenant taper 'ss' dans une ligne de commande pour activer l'écran de veille. L'économiseur d'écran est à son tour configuré pour demander un mot de passe une minute après l'activation de l'économiseur d'écran (qui pourrait être abaissé davantage, je crois, si nécessaire).

5voto

Yann Cardon Points 51

Sur MacOS Sierra

  • affichage du sommeil : pmset displaysleepnow
  • affichage du réveil : caffeinate -u -t 1
  • état de test : pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29 les résultats <4 sont un affichage de sommeil

un petit nœud serveur HTTP pour définir le statut de l'écran de votre Mac à distance : https://github.com/ycardon/switch-api

0 votes

Vous pouvez obtenir un code de sortie 0 ou non nul pour la logique conditionnelle en faisant "echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]" (en l'utilisant pour dire vrai ou faux "l'écran est-il allumé ?").

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X