Programe una Mac para dormir, solo una vez

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

De vez en cuando me voy a la cama, pero dejo un archivo transfiriéndose, y quiero que la Mac duerma dentro de una hora. Entonces, ¿cómo haría eso sin establecer un programa a largo plazo?

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

Respuestas (5)

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"
}
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 envolver esa expresión de acento grave de fecha entre comillas dobles. Así que hazlo:local datetime="`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`"
Función complementaria para cancelar la suspensión (reemplazar "\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

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

ingrese la descripción de la imagen aquí

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

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 desea.
  • osascript -e 'tell application "System Events" to sleep'poner la computadora a dormir.
Con GNU coreutils, sleepacepta argumentos como 10s, 5m, 3hpara segundos, minutos y horas respectivamente.

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 dentro de las próximas 24 horas una acción del sistema (Apagar, Bloquear, Reiniciar, Cerrar sesión, Suspender) y solo cuesta $ 3 en el iOS store, pero requiere la instalación de una aplicación de ayuda 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 entre en reposo, 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 determinado y luego puso mi Mac en dormir:

script maestro del teclado para poner Mac en suspensión después de 2 horas

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

disparador maestro del teclado para macro basado en la hora y el 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 una curva de aprendizaje un poco más que la aplicación Power Manager.

Todas las respuestas anteriores funcionan, pero si desea hacer esto con regularidad, le recomiendo el software Power Manager , que le permite configurar tiempos de suspensión personalizados, tanto para una 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 costoso ($ 50), pero hay una prueba gratuita de 30 días con todas las funciones. También puede controlar Power Manager desde su iPhone, lo cual es bueno si está lejos de su computadora pero desea configurarlo para que entre en suspensión o se apague.

Prueba man shutdown; tiene una -sopción para el modo de suspensión

shutdown -s <time>

donde <time>puede estar:

  • now
  • +mpor ejemplo +180, durante 3 horas a partir de ahora
  • yymmddhhmmpor ejemplo 2112250000, por el momento se convierte en Navidad (este año)