Programe una Mac para dormir, solo una vez

18

¿Es posible programar una Mac para dormir solo una vez? Sé que puedo establecer un horario para ello, pero quiero tener control sobre él.

Así que de vez en cuando me voy a la cama pero dejo que se transfiera un archivo, y quiero que la Mac duerma dentro de una hora a partir de ahora. Entonces, ¿cómo voy a hacer eso, sin establecer un horario a largo plazo?

Gary
fuente
2
Si está descargando dentro de la Terminal, puede combinar ambos comandos de forma similar a: sudo sh -c 'wget http://download.com/file.zip; pmset sleepnow'El comando de suspensión solo se ejecutará cuando salga wget.
Overbryd

Respuestas:

28

El pmsetcomando de terminal debe hacer lo que quieras. Lo siguiente pondrá la computadora en suspensión a las 23:45:00 el 2 de diciembre de 2014. Sin embargo, el comando debe ejecutarse desde una cuenta de administrador:

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

El formato de fecha MM / DD / AA no se puede cambiar; por lo tanto, si está acostumbrado a un formato diferente, tenga cuidado.

Si hace esto regularmente, puede escribir una función y guardarla en su ~/.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"
}
Kent
fuente
2
Estaba recibiendo un error al llamar a la función sleep-in:local:2: not an identifier: 23:35:31. Resulta (al menos en mi instalación (zsh)) que necesita ajustar esa expresión de retroceso de fecha entre comillas dobles. También lo haga:local datetime="`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`"
Matt Dodge
Función complementaria para cancelar durmientes (reemplace "\ n" con nuevas líneas reales): 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 }\ n
KFunk
7

Por defecto, no hay forma de hacerlo con las opciones que tiene en las preferencias del sistema.

ingrese la descripción de la imagen aquí

Pero, puede hacerlo desde la línea de comandos con un comando simple:

sleep 10; osascript -e 'tell application "System Events" to sleep'
  • sleep 10pause la ejecución del siguiente comando durante 10 segundos. Si desea minutos u horas, debe cambiar 10 con la cantidad de segundos que desee.
  • osascript -e 'tell application "System Events" to sleep' poner la computadora a dormir.
jherran
fuente
1
Con coreutils GNU, sleepacepta argumentos como 10s, 5m, 3hpor segundos, minutos y horas respectivamente.
AL
1

Todas las respuestas anteriores funcionan, pero si desea hacer esto regularmente, le recomiendo el software Power Manager , que le permite establecer tiempos de suspensión personalizados, tanto para una sola vez como para eventos recurrentes muy fácilmente (mucho más fácilmente que usar comandos de Terminal, en mi opinión). El software es relativamente caro ($ 50), pero hay una prueba gratuita de 30 días con todas las características. También puede controlar Power Manager desde su iPhone, lo cual es bueno si está lejos de su computadora pero desea configurarla para que se suspenda o se apague.


fuente
1

Para el control de energía de su Mac desde su iPhone en una red local, he usado Off Remote que también puede programar en las próximas 24 horas una acción del sistema (Apagar, Bloquear, Reiniciar, Cerrar sesión, Suspender) y solo cuesta $ 3 en iOS almacenar pero requiere la instalación de una aplicación auxiliar adicional en su Mac para recibir las instrucciones de la aplicación para iPhone.

Otra respuesta aquí sugirió usar el software Power Manager que cuesta $ 50, pero sugeriría el software Keyboard Maestro de $ 36 que es un poco menos intuitivo que Power Manager pero tiene una mayor flexibilidad más allá de la administración de energía. Al buscar la capacidad de programar mi Mac para que duerma, recordé que tengo esta utilidad y pude arrastrar y soltar rápidamente los componentes de macro en KM para crear un script que se detuvo durante un período de tiempo establecido y luego poner mi Mac en dormir:

script maestro de teclado para poner Mac a dormir después de 2 horas

... también hay una acción dentro de Keyboard Maestro para programar también macros (para poner Mac en suspensión, apagado, reinicio, etc.) para que se activen en los momentos designados:

disparador maestro de teclado para macro basado en hora y día (s) de la semana

Keyboard Maestro es más barato y mucho más robusto para desarrollar macros que pueden mejorar el uso de su Mac, pero hay un poco más de curva de aprendizaje que la aplicación Power Manager.

Alan Cook
fuente