tallermac

macOS, automatización y oficio · 208 artículos

Terminal 18 de septiembre de 2023 Por Francisco Sierra Cuerva 6 min de lectura

Caffeinate y los comandos de energía de macOS: cómo evitar que tu Mac se duerma

Aprende a usar caffeinate en el Mac para impedir el sueño temporalmente, pmset para ajustar la gestión de energía y cómo saber qué proceso mantiene despierto a tu Mac.

A classic MS-DOS terminal screen displayed on a laptop keyboard with vivid illumination.
Foto de Rafael Minguet Delgado en Pexels

Lanzas una copia de seguridad de 200 GB a Time Machine, te vas a cenar y al volver el Mac se ha dormido a mitad de camino. La solución no es tocar los ajustes de energía ni instalar nada: basta con escribir caffeinate en el Terminal. Si buscas «caffeinate mac no dormir», la respuesta corta es esta: ejecuta caffeinate -di y tu Mac no se dormirá mientras ese proceso siga vivo; pulsa ⌃C para devolverlo a su comportamiento normal.

Caffeinate forma parte de macOS desde OS X 10.8 Mountain Lion, vive en /usr/bin/caffeinate y funciona creando «assertions» (afirmaciones) de gestión de energía en IOKit: le dice al sistema que alguien necesita la máquina despierta, igual que hace QuickTime cuando reproduces una película. No modifica ningún ajuste permanente, no requiere sudo y desaparece sin dejar rastro en cuanto el proceso termina.

Caffeinate en el Mac: sintaxis y opciones que de verdad usarás

La sintaxis completa está en su página de manual: caffeinate [-disum] [-t timeout] [-w pid] [utilidad [argumentos...]]. Estas son las opciones que importan en la práctica:

OpciónQué impide
-dQue la pantalla se apague
-iQue el sistema se duerma por inactividad
-mQue el disco entre en reposo
-sEl sueño del sistema en general (solo con el cargador conectado)
-uSimula actividad del usuario; despierta la pantalla si está apagada
-t segundosLímite de tiempo: pasado ese plazo, la afirmación expira sola
-w pidMantiene la afirmación solo mientras viva el proceso indicado

Tres ejemplos que cubren el 95 % de los casos:

caffeinate -di -t 3600

El Mac no se duerme ni apaga la pantalla durante una hora. Útil para una presentación o una descarga concreta.

caffeinate -i rsync -av ~/Fotos /Volumes/Backup/

La joya de la corona: si pasas un comando como argumento, caffeinate mantiene el sistema despierto solo mientras ese comando se ejecuta y libera la afirmación al terminar. Funciona con rsync, make, ffmpeg o lo que sea.

caffeinate -d -t 7200

Solo pantalla encendida, dos horas, sin impedir que el sistema ahorre energía en lo demás.

Un matiz importante: -s solo actúa con el Mac conectado a la corriente, por diseño. Si quieres que un MacBook siga despierto con la tapa cerrada, necesitas cargador (y hay que pensárselo dos veces por temperatura y batería). Si usas el Terminal a diario, conviene tenerlo bien configurado; hay una guía de Terminal y Homebrew en macOS en este mismo blog.

pmset: ver y ajustar la gestión de energía de verdad

Caffeinate es temporal; pmset es la configuración persistente, la misma que ves en Ajustes del Sistema pero con acceso a muchos más parámetros. Lo primero es mirar sin tocar:

pmset -g
pmset -g batt
pmset -g cap

pmset -g muestra los ajustes actuales (sleep, displaysleep, disksleep, powernap, standby…), -g batt el estado de la batería y -g cap qué capacidades soporta tu modelo concreto, que no son las mismas en un Mac mini que en un MacBook Air.

Para modificar algo hace falta sudo, y la clave está en los modificadores de contexto: -b (batería), -c (cargador), -u (SAI) y -a (todos). Así puedes tener políticas distintas según de dónde venga la corriente:

sudo pmset -c displaysleep 0
sudo pmset -b displaysleep 5
sudo pmset -b sleep 10

Con eso, enchufado el Mac nunca apaga la pantalla (un Mac mini que hace de servidor, por ejemplo), pero con batería entra en reposo a los diez minutos. También se pueden programar encendidos y apagados (sudo pmset repeat wake MTWRF 09:00:00 para despertarlo cada día laborable a las 9:00), aunque en los Mac con Apple Silicon los eventos programados de encendido desde apagado tienen limitaciones respecto a los Intel. Toda la referencia está en la página de manual de pmset.

¿Qué está manteniendo despierto a mi Mac? pmset -g assertions

El problema inverso es igual de frecuente: el Mac no se duerme y no sabes por qué. La respuesta está en:

pmset -g assertions

Verás una lista de afirmaciones activas con el proceso que las creó y su PID. Las secciones que mirar son PreventUserIdleSystemSleep y PreventUserIdleDisplaySleep: si valen 1, alguien está bloqueando el sueño, y justo debajo aparece quién. No es raro encontrar ahí a caffeinate olvidado de otro día, a un navegador reproduciendo audio en una pestaña, a Time Machine a mitad de copia o a apps de videollamada que se quedan con la afirmación tras colgar. Matar al proceso responsable (o cerrar la app) libera la afirmación al instante.

Entender los despertares con log show

Cuando el problema es que el Mac se despierta solo —lo dejas dormido y a las 3:00 está encendido— toca mirar el registro unificado:

log show --last 1d --predicate 'eventMessage CONTAINS "Wake reason"'

Cada línea indica la causa del despertar: RTC (alarma programada, por ejemplo Power Nap), EC.RTC/Maintenance, actividad de red (Wake for network access), dispositivos USB o Bluetooth. Si los despertares nocturnos te comen la batería, los sospechosos habituales son Power Nap y el despertar por acceso de red, que puedes desactivar con sudo pmset -b powernap 0 y sudo pmset -a womp 0. Complementa esto con pmset -g log, que muestra un historial resumido de sueño y despertares mucho más legible.

Amphetamine: la alternativa con icono en la barra de menús

Si no quieres vivir en el Terminal, la referencia gráfica sigue siendo Amphetamine, de William Gustafson: gratuita, sin compras dentro de la app y disponible en la Mac App Store. Vive en la barra de menús y permite sesiones de «mantener despierto» por tiempo, indefinidas o con disparadores automáticos (cuando se ejecuta cierta app, cuando el Mac está conectado a cierta red Wi-Fi, cuando hay una descarga en marcha…). Para uso ocasional, caffeinate es más rápido; para reglas recurrentes, Amphetamine es más cómodo. Y si ya tienes la barra de menús llena de iconos, mejor repasar antes estas apps y trucos para la barra de menús del Mac.

En resumen: caffeinate para el «ahora no te duermas», pmset para la política permanente, pmset -g assertions para pillar al culpable y log show para los despertares fantasma. Con esos cuatro comandos controlas por completo cuándo duerme tu Mac.

Preguntas frecuentes

¿Cómo hago que mi Mac no se duerma nunca? Con sudo pmset -c sleep 0 mientras esté enchufado, o ejecutando caffeinate -di y dejándolo correr. Lo permanente es pmset; caffeinate es temporal por diseño.

¿Caffeinate funciona con la tapa cerrada? Solo si el MacBook está conectado al cargador (y, según el modelo, a una pantalla externa). Con batería, macOS fuerza el sueño al cerrar la tapa por seguridad térmica y de autonomía.

¿Cómo sé qué app impide que mi Mac se duerma? Ejecuta pmset -g assertions y busca las entradas con valor 1 en PreventUserIdleSystemSleep o PreventUserIdleDisplaySleep: ahí aparece el proceso responsable con su PID.

¿Es malo impedir el sueño del Mac durante muchas horas? En un Mac de escritorio, apenas relevante. En un MacBook, mantenerlo despierto consume batería y genera calor; si además trabaja con la tapa cerrada sin ventilación, puede reducir el rendimiento por temperatura. Mejor usar -t con un límite de tiempo razonable.

La gestión de energía de macOS parece una caja negra hasta que conoces estas cuatro herramientas. A partir de ahí, el Mac duerme cuando tú quieres, no cuando le apetece.

Sigue leyendo

Sobre el autor

Soy Francisco Sierra Cuerva, desarrollador de software, maquero de larga recorrida y el autor de este taller. Escribo en español sobre macOS, automatización y las apps que merecen hueco en tu equipo, siempre con datos y fuentes sobre la mesa.

También soy el autor de SideList, una lista de tareas sencilla que vive en la barra de menús del Mac. Si te gusta lo que lees aquí, es la mejor muestra de cómo entiendo el software para macOS.

Equipo recomendado

Transparencia: los enlaces de esta sección son de afiliado. En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables. A ti no te cuesta nada más y solo recomiendo lo que uso.

Comentarios (0)

Todavía no hay comentarios aprobados. Sé el primero.

Los comentarios se revisan antes de publicarse.