23 votos

Despertar de la pantalla del terminal, despertar general

Esta es una pregunta de dos partes. Primero es una pregunta práctica, de "cómo hacerlo", y luego pido sugerencias de configuración.

En primer lugar, pongo mis pantallas a dormir por la noche, y me gustaría ser capaz de despertar la pantalla de forma remota. ¿Existe una utilidad de línea de comandos que pueda utilizar para despertarla a través de SSH? Conozco WakeOnLan, pero me parece una exageración.

En segundo lugar, la razón por la que quiero despertar mi pantalla de forma remota tiene que ver con el cambio de la configuración de ahorro de energía de Lion. El mando de infrarrojos de Apple ya no despierta la pantalla. Esto es un gran problema para una máquina que compré originalmente para ser una combinación de ordenador de sobremesa y de cine en casa, ya que anula la mitad de su propósito. Así que, ¿alguien tiene alguna idea/sugerencia sobre qué hacer con esto? Esto es abierto, lo sé.

33voto

James Socol Puntos 146

La forma más sencilla de hacerlo a través de SSH es utilizar caffeinate -u (disponible desde OS X 10.9, creo) para simular la actividad del usuario.

Añadir la bandera -t 5 para especificar un tiempo de espera de 5 segundos (si no, tendría que ctrl + c sin cafeína, parece).

1 votos

Ahí tienes un (+) por tu respuesta a la que nadie ha prestado atención. Tengo muchos de esos mi auto, donde ppl vienen hacer una pregunta más reciente para volver a comprobar para una respuesta.

1 votos

Según la página man (en High Sierra), los 5 segundos son un valor predeterminado para el -u opción: Si no se especifica un tiempo de espera con la opción '-t', esta afirmación se toma con un tiempo de espera por defecto de 5 segundos

0 votos

@JJarava Acabo de probarlo sin la opción '-t' y, si bien despertó a la máquina remota, no pareció que se agotara el tiempo de espera en absoluto (dejé de esperar después de un minuto).

10voto

Tobias Kienzler Puntos 1279

Puede utilizar

pmset schedule wake "01/01/2012 20:00:00"

para despertar una pantalla dormida en un Mac que, por lo demás, está "despierto". Sustituya la parte de la fecha/hora por la hora actual, por supuesto.

7voto

Steve Evans Puntos 155

Despertar la pantalla desde la línea de comandos

Para despertar su pantalla de forma remota, intente ejecutar un AppleScript en la línea de comandos:

osascript -e 'tell application "System Events" to key code 123'

Esto simulará la pulsación de la tecla del cursor y debe hacer que Mac OS X 10 crea que un usuario está activo en el ordenador.

Este AppleScript se basa en la respuesta, ¿Cómo puedo automatizar la pulsación de una tecla en AppleScript?

Despertar la pantalla después de despertarla con el mando

Si está despertando su Mac con el mando a distancia y la pantalla no se enciende, intente Asistencia a la vigilia . No está diseñado para esta situación, pero podría funcionar.

Wake Assist simula un clic del ratón después de que su Mac se despierte. El ratón se pulsa dos veces en la parte superior izquierda de su pantalla principal. Wake Assist no hará nada si detecta a un usuario, pero si el ordenador se despierta y está inactivo, entonces se hace clic en el ratón por usted.

1 votos

Lo de AppleScript no me ha funcionado. Obtengo una imagen negra de screencapture incluso después de esperar unos minutos.

0 votos

¿Has probado a simular la pulsación de alguna otra tecla, tal vez la tecla del cursor no sea suficiente? ¿Requiere una contraseña al despertar?

1 votos

Me funcionó bien en OS X 10.6

3voto

moodforaday Puntos 2633

wuc escribió:

Puede utilizar

pmset schedule wake "01/01/2012 20:00:00"

para despertar una pantalla dormida en un Mac que, por lo demás, está "despierto". Sustituya la parte de la fecha/hora por la hora actual, por supuesto.

Sin embargo, eso no me funcionó en un iMac de alrededor de 2008 que ejecutaba la versión 10.9.1 ni en un Macbook Air de finales de 2010 que ejecutaba la versión 10.9.2. No estoy seguro de si esto tiene algo que ver con la gestión de la energía de Mavericks o el hardware, o qué.

Conseguí que funcionara configurando la hora de despertar en 15 segundos en el futuro. Ocasionalmente pude conseguir que funcionara con el ajuste tan bajo como 12 o 13, pero no de forma fiable. Pero puede haber otros factores de los que no me di cuenta en ese momento, pero 15 funcionaba, así que usé 15.

Pero, ¿cómo se calculan 15 segundos en el futuro de forma programada?

Utilicé gdate del paquete GNU Coreutils ( date en OS X puede ser capaz de hacer esto, pero si puede, no sé cómo, y ya tenía gdate instalado):

[para usar date en lugar de gdate use alias set_wake_time='date "-v+${OFFSET}S" "+%D %T"']

Aquí está el script que he utilizado:

#!/bin/zsh -f

# how many seconds into the future we want to wake the display
# 15 seems to work reliably. YMMV.
OFFSET=15

# to calculate the time, we need `gdate`
alias set_wake_time='/usr/local/bin/gdate --date "+${OFFSET} sec" "+%m/%d/%g %H:%M:%S"'

# this is where we set the wake command
# if it doesn't succeed the script will exit immediately
/usr/bin/sudo /usr/bin/pmset schedule wake "`set_wake_time`" || exit 1

# if you were not testing this, you'd probably want to end at the
# next line. Just remove the leading '#'
#exit 0
#######################################################

### Everything below this line is only needed during testing ###

# this tells the display to sleep
# because we can test waking the screen up unless it's asleep
pmset displaysleepnow

# for testing purposes: now the script will pause for $OFFSET seconds
sleep $OFFSET

# For testing purposes:
# after $OFFSET seconds, this sound will play 3 times.
# by that time, the display should be awake
# I did this to help me know when I had set OFFSET too low

afplay /System/Library/Sounds/Glass.aiff

afplay /System/Library/Sounds/Glass.aiff

afplay /System/Library/Sounds/Glass.aiff

# script is done
exit 0

Todo lo que está después de la "#######################################################" puede ser eliminado una vez que haya terminado las pruebas.

0 votos

date -jv+15S hará el truco de calcular la fecha 15 segundos en el futuro desde ahora. El -j el interruptor impide date de intentar ajustar el reloj del sistema.

2 votos

El comando date -jv+15S "+%m/%d/%Y %H:%M:%S" pondrá los 15 segundos en el futuro en el formato correcto para pmset .

0 votos

Según la página de manual de pmset de OSX 10.10.3, también hay una opción de 'pmset relative wake seconds'. Podría valer la pena investigar también.

1voto

D. Woods Puntos 175

Oh, cómo me gustaría tener suficientes rep para upvote la respuesta de @wuc las 10 veces que se merece por este problema enloquecedoramente frustrante (o para al menos poder dejar un simple comentario con los elogios que merece).

Apple, en su sabiduría paternalista, añadió una "característica" que intencionadamente hacía más difícil despertar la pantalla en Lion y Mountain Lion. Esto ha hecho la vida mucho más difícil para aquellos que desean despertar la pantalla de forma remota (utilizando mandos IR o a través de VNC) para interactuar con sus Macs . Por alguna razón, esto se convirtió en más pronunciado con OS X 10.8.2 .

Utilizando pmset fue una maravillosa solución para mí.

Paso 1: Inicie sesión en la máquina remota utilizando ssh myname@192.168.1.2 (sustituir por un nombre de usuario e ip apropiados para el Mac remoto).

Paso 2: Despierta la pantalla usando pmset schedule wake "06/27/2013 04:20:00" (con una fecha futura apropiada de su elección).

0 votos

Estoy un poco de acuerdo, y he disfrutado leyendo su respuesta, pero quizás considere apple.stackexchange.com/help/how-to-answer .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X