Waking display from terminal, sveglia generale

20

Questa è una domanda in due parti. Una domanda pratica, "come fare" è la prima, e poi chiedo suggerimenti sulla configurazione.

In primo luogo, ho messo i miei schermi a dormire la notte, e mi piacerebbe essere in grado di riattivare il display da remoto. C'è una utility a riga di comando che posso usare per riattivarla tramite SSH? So di WakeOnLan, ma sembra eccessivo.

In secondo luogo, l'intera ragione per cui voglio riattivare il mio display da remoto ha a che fare con il modo in cui le impostazioni di risparmio energetico di Lion sono cambiate. Il telecomando a infrarossi Apple non riattiva più il display. Questo è un enorme affare per una macchina che ho originariamente acquistato per essere un PC desktop / home theater combinato, poiché sconfigge metà del suo scopo. Quindi, qualcuno ha qualche idea / suggerimento su cosa fare al riguardo? Questo è aperto, lo so.

    
posta anon 15.06.2012 - 15:27
fonte

7 risposte

22

Il modo più semplice per farlo su SSH è usare caffeinate -u (disponibile dal momento che OS X 10.9 penso) per simulare l'attività dell'utente.

Aggiungi il flag -t 5 per specificare un timeout di 5 secondi (altrimenti dovresti ctrl + c di caffeinate, a quanto pare).

    
risposta data 12.12.2014 - 13:56
fonte
8

Puoi usare

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

per riattivare un display dormiente su un Mac altrimenti "sveglio". Sostituisci ovviamente la parte data / ora con l'ora corrente.

    
risposta data 23.11.2012 - 19:47
fonte
7

Wake: caffeinate -u -t 2

Sonno: pmset displaysleepnow

    
risposta data 08.05.2016 - 06:54
fonte
6

Riattivazione dello schermo dalla riga di comando

Per riattivare il tuo schermo da remoto, prova a eseguire un AppleScript sulla riga di comando:

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

Questo simulerà la pressione del tasto cursore e dovrebbe far credere a Mac OS X 10 che un utente sia attivo sul computer.

Questo AppleScript si basa sulla risposta, How automatizzo la pressione di un tasto in AppleScript?

Riattivazione del display dopo il risveglio con il telecomando

Se stai svegliando il tuo Mac usando il telecomando e il display non si accende, prova Wake Assist . Non è progettato per questa situazione, ma potrebbe funzionare.

Wake Assist simula un clic del mouse dopo che il tuo Mac si è svegliato. Il mouse viene cliccato due volte nella parte in alto a sinistra del display principale. Wake Assist non farà nulla se rileva un utente ma se il computer si sveglia ed è inattivo, viene cliccato il mouse per te.

    
risposta data 18.07.2012 - 19:21
fonte
3

wuc ha scritto:

You can use

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

to wake up a sleeping display on an otherwise "awake" Mac. Replace the date/time part with current time of course.

Tuttavia, ciò non ha funzionato per me su un iMac del 2008 circa con 10.9.1 o un MacBook Air in ritardo di 10.9.2. Non sono sicuro che questo abbia a che fare con la gestione energetica di Mavericks o con l'hardware, o cosa.

Sono riuscito a farlo funzionare impostando il tempo di attivazione su 15 secondi nel futuro. Occasionalmente sono riuscito a farlo funzionare con l'impostazione a partire da 12 o 13, ma non in modo affidabile. Ma potrebbero esserci stati altri fattori che non avevo realizzato al momento, ma 15 hanno funzionato, quindi ho usato 15.

Ma come calcoli 15 secondi nel futuro a livello di programmazione?

Ho usato gdate dal pacchetto GNU Coreutils ( date in OS X potrebbe essere in grado di farlo, ma se possibile, non so come, e ho già installato gdate ):

[per usare date invece di gdate usa alias set_wake_time = 'date "-v + $ {OFFSET} S" "+% D% T"']

Ecco lo script che ho usato:

#!/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

Tutto dopo il '####################################################### ############ 'può essere rimosso una volta terminato il test.

    
risposta data 02.04.2014 - 08:45
fonte
1

Oh, quanto vorrei avere un rappresentante sufficiente a revocare la risposta di @ wuc alle 10 volte che merita per questo problema frustrante e frustrante (o almeno essere in grado di lasciare un semplice commento con la lode che merita).

Apple, nella sua saggezza paternalistica, ha aggiunto una "funzione" che ha reso più difficile attivare la visualizzazione su Lion e Mountain Lion. Ciò ha reso la vita molto più difficile per coloro che desiderano scattare da remoto il display (usando i telecomandi IR o tramite VNC) per interagire con i propri Mac. Per qualche motivo, questo è diventato più pronunciato con OS X 10.8.2 .

L'utilizzo di pmset è stata una soluzione meravigliosa per me.

Passaggio 1: accedi alla macchina remota usando ssh [email protected] (sostituisci con un nome utente e un ip appropriati per il Mac remoto).

Passaggio 2: riattiva il display utilizzando pmset schedule wake "06/27/2013 04:20:00" (con una data futura appropriata a tua scelta).

    
risposta data 28.06.2013 - 06:02
fonte
0

Opzione se non vuoi usare gdate:

  • Abilita SSHD (Login remoto) in Preferenze di Sistema, Condivisione
  • Abilita "Riattiva l'accesso alla rete" in Preferenze di Sistema, Risparmio energia

inserisci questo codice in un file come "wakeup.sh" nella tua cartella home:

shopt -s expand_aliases
#NB: 7 is the waiting interval. Works for me. Increase as needed. 
alias myDate='date -v+7S "+%m/%d/%Y %H:%M:%S"'
echo MacBook will wake up at: 'myDate'
echo yourMacPW | sudo -S pmset schedule wake "'myDate'"
  • Rendilo eseguibile con "chmod + x wakeup.sh" e inserisci la tua password se lo desideri. Altrimenti lascia cadere l'eco e -S.

Se vuoi automatizzare questo processo perché funzioni da una macchina Windows:

  • Ottieni PuTTY e uno strumento WakeOnLan da riga di comando (ad es. Aquila su SourceForge)
  • Crea un file di testo a una riga contenente "./wakeup.sh"
  • scrivi un file batch come questo:

    @echo off
    c:
    cd "C:\Program Files (x86)\Aquila Technology\WakeOnLAN"
    :tryAgain
    wakeonlanc.exe -w -mac 00:00:00:00:00:00
    ping 192.168.1.101 -n 1 | find "unreachable"
    if %ERRORLEVEL% EQU 0 GOTO tryAgain
    cd C:\putty
    putty.exe -ssh 192.168.1.101 -l yourUser -pw yourMacPW -m c:\putty\macWake.txt
    

Cose che devi cambiare: il tuo IP, il tuo indirizzo MAC, la parola 'irraggiungibile' potrebbero non essere ciò che ottieni - potresti essere "scaduto". Memorizzare una password di root in formato testo è, naturalmente, non una buona idea, ma questo è come farlo in modo completamente automatico da Windows a OSX.

    
risposta data 17.07.2015 - 14:08
fonte

Leggi altre domande sui tag