Evita que la Mac se duerma durante un comando largo en Terminal

Henry AGI
6 min de lecturaJun 2026
Evita que la Mac se duerma durante un comando largo en Terminal

La respuesta rápida: antepón caffeinate -i tu-comando, o lidrun -- tu-comando, y la Mac se mantiene despierta hasta que termine, sin que tengas que estar pendiente. Lo que la mayoría de las guías no dice es que cerrar la tapa funciona con un mecanismo completamente distinto — ni caffeinate ni una simple keep-awake assertion pueden evitarlo, y es justo eso lo que sorprende a quienes dejan corriendo trabajos largos sin supervisión.

Por qué los comandos largos se cortan

Un comando en Terminal es un proceso normal, atado al estado de energía de la Mac. Si te alejas el tiempo suficiente como para activar el temporizador de inactividad, o cierras la tapa, la Mac se duerme y el comando queda suspendido a mitad de camino.

Las transferencias largas con rsync, los builds, las descargas de modelos y los scripts por lotes son justo los que más probablemente superen el temporizador de inactividad — y también los que menos quieres tener que repetir. El trabajo no falló: la Mac simplemente se detuvo debajo de él.

Hay un segundo modo de falla, relacionado, que vale la pena mencionar desde ya: si te conectas por SSH a una Mac para correr el trabajo de forma remota, esa máquina tiene sus propios temporizadores de inactividad y de cierre de tapa, completamente independientes de tu conexión SSH. Una herramienta keep-awake tiene que correr en la máquina que hace el trabajo, no en la que estás usando para escribir.

caffeinate y sus flags

macOS trae caffeinate justo para esto, y para un solo trabajo en primer plano es la herramienta correcta — no hay que instalar nada, no cuesta nada. La combinación de flags decide qué es lo que realmente mantiene activo:

LidRun
Terminal window running caffeinate -i in front of an active rsync transfer, with the -i flag annotated
caffeinate -i your-command mantiene la Mac despierta solo hasta que termina el comando que envuelve.

caffeinate -i tu-comando — bloquea el sueño por inactividad mientras tu-comando esté corriendo, y luego termina y libera la assertion automáticamente. Es la que la mayoría de la gente quiere para un trabajo en Terminal.

caffeinate -d tu-comando — también mantiene la pantalla encendida, útil si quieres echar un vistazo a la salida que va corriendo sin que la pantalla se atenúe.

caffeinate -s tu-comando — bloquea el sueño del sistema, pero solo mientras la Mac está conectada a la corriente. Con batería, -s simplemente no hace nada, algo que sorprende a más de uno que asumió que se comporta igual sin cable.

caffeinate -w <pid> — no envuelve ningún comando; espera a un proceso que ya está corriendo. Útil para un trabajo que iniciaste en segundo plano: long_job & caffeinate -w $!.

caffeinate -t 3600 — mantiene la assertion durante una cantidad fija de segundos en lugar de atarla a un proceso, útil para una ventana de tiempo determinada más que para un comando específico.

Guía relacionadaEvita que tu Mac se duerma durante un build de Docker

Dónde se detiene caffeinate, y por qué la tapa es un problema aparte

Lo que caffeinate no hace es vigilar la batería ni el calor. Cualquiera de esos flags mantendrá la laptop despierta sin problema hasta que se agote la carga, en un trabajo que ni siquiera estás viendo, y ninguno lee el estado térmico de la Mac durante una compilación larga y caliente.

LidRun
Diagram contrasting idle sleep, which caffeinate and lidrun block, against lid-close clamshell sleep, which needs pmset disablesleep instead
Las assertions de reposo por inactividad y el reposo clamshell (tapa cerrada) son dos puertas distintas — un comando keep-awake solo cierra una de ellas.

La tapa es un asunto distinto. Las assertions de caffeinate, y la misma llamada IOPMAssertionCreateWithName que usa el propio CLI de LidRun, solo bloquean el sueño *por inactividad*. Cerrar la tapa activa un sueño clamshell separado, de más bajo nivel, que ninguna assertion de inactividad puede detener — el sistema operativo duerme la máquina de todos modos. La única palanca pública que mantiene despierta a una Mac con la tapa cerrada, con batería, es pmset -a disablesleep 1, un ajuste global del sistema que requiere permisos de administrador; con un monitor externo conectado y activo, macOS también se mantiene despierto gracias al modo clamshell nativo, sin necesidad de ninguna herramienta de terceros. Si tu escenario real es cerrar la tapa y no quedarte en tu escritorio, nuestra guía de tapa cerrada cubre ese mecanismo y sus contrapartidas en detalle — este artículo se mantiene enfocado en el caso de un comando en Terminal.

Correr trabajos largos por SSH

Cuando el comando corre en una Mac remota, hay dos relojes que importan y son independientes entre sí. Uno es el propio temporizador de inactividad de esa Mac; el otro es si tu sesión SSH sobrevive a un corte de red o al cierre de tu terminal local.

Para lo primero, corre caffeinate -i o lidrun -- en la propia Mac remota, no en tu máquina local — una assertion keep-awake solo protege el equipo en el que está corriendo.

Para lo segundo, envuelve el comando remoto en nohup, screen o tmux antes de desconectarte. Sin uno de estos, cerrar tu terminal local (o perder la conexión) puede enviar SIGHUP al shell remoto y matar el trabajo aunque la Mac nunca se haya dormido.

Una forma más segura de envolver un comando

El CLI de LidRun sigue el mismo patrón de un solo comando y le suma las protecciones que caffeinate se salta: lidrun -- tu-comando mantiene una assertion keep-awake de corta duración para esa única ejecución, y la libera en el momento en que el comando termina, sin necesidad de licencia ni configuración — es gratis e ilimitado, igual que caffeinate.

Mientras esa assertion está activa, el piso de batería y la liberación térmica automática de la app siguen aplicando si LidRun está corriendo: keep-awake se detiene solo al llegar a un umbral de batería que tú defines (20% por defecto, ajustable entre 15% y 50%), y hay un piso de emergencia fijo en 4% que siempre se activa sin importar tu configuración, porque macOS necesita ese margen para terminar de dormirse de forma limpia. Si el estado térmico de la Mac llega a crítico, la retención también se libera sola por defecto — la promesa honesta de LidRun es: si hay un agente o un trabajo corriendo, se mantiene despierta; si el trabajo terminó o la Mac no está segura, se libera y se deja dormir.

También existe una versión con interfaz gráfica dentro de la app — un panel Run & Watch que inicia un comando, mantiene la Mac despierta mientras corre y muestra la salida en vivo sin que tengas que tocar Terminal — pero ese panel es una función Pro. El simple wrapper de CLI lidrun -- <comando> no tiene ninguna restricción; forma parte del nivel gratuito de LidRun.

Una configuración práctica

Comando puntual, en tu escritorio: antepónlo y aléjate — tanto lidrun -- tu-comando-largo como caffeinate -i tu-comando-largo funcionan, y la assertion se libera en el instante en que el comando termina. Ninguno de los dos necesita ninguna otra configuración.

Sesión más larga sin supervisión, con la tapa abierta: conéctate a la corriente si puedes, inicia el comando, y si quieres que las protecciones de batería y térmicas de LidRun vigilen toda la sesión y no solo un proceso, activa primero el interruptor Keep Awake en la barra de menú y luego corre tu comando con normalidad. Configura un temporizador de sesión (el selector ofrece desde 30 minutos hasta 8 horas) para que un script que se cuelga no mantenga la Mac despierta indefinidamente — un trabajo colgado es exactamente el caso para el que un keep-awake sin supervisión no debería correr para siempre.

Sesión con la tapa cerrada: esto necesita específicamente el modo Closed-Lid, no un keep-awake simple — revisa la guía dedicada enlazada más arriba, ya que cambia por completo el cálculo de seguridad (el calor no tiene adónde escapar con la tapa cerrada).

Sea cual sea la configuración, mantén la Mac sobre una superficie dura y ventilada para los trabajos pesados. Un build, una compresión o una transferencia largos pueden calentar el equipo, y el flujo de aire es lo único que ningún ajuste de software puede solucionar.

Pruébalo en vez de pelear con el reposo de tapa cerrada

LidRun mantiene tu trabajo en marcha con la tapa cerrada, con protección de batería y temperatura integrada.

Descargar para macOS

¿Ya tienes LidRun? Lee la guía de configuración →

¿Nuevo en LidRun? Consulta los precios →

Preguntas frecuentes

¿Es suficiente caffeinate para un comando largo en Terminal?

Para un trabajo en una Mac conectada a la corriente que vas a estar revisando, sí — caffeinate -i tu-comando es confiable y gratis. Para un trabajo largo sin supervisión, sobre todo con batería, no tiene ninguna conciencia de batería ni de temperatura, así que mantendrá la Mac despierta hasta un apagado por batería baja o durante un trabajo caliente que empieza a hacer throttling.

¿Qué hacen realmente los flags de caffeinate?

-i bloquea el sueño por inactividad para el comando envuelto (el que necesita la mayoría de los trabajos en Terminal), -d además mantiene la pantalla encendida, -s bloquea el sueño del sistema pero solo con corriente conectada (no hace nada con batería), y -w <pid> espera a un proceso que ya está corriendo en lugar de envolver uno nuevo.

¿Puedo mantener la Mac despierta solo para un comando?

Sí. Tanto caffeinate -i tu-comando como lidrun -- tu-comando mantienen una assertion de sueño por inactividad durante la duración de ese proceso único y la liberan automáticamente cuando el comando termina. El wrapper de CLI lidrun es gratis e ilimitado, no necesita licencia.

¿Por qué cerrar la tapa mata el trabajo aunque caffeinate esté corriendo?

caffeinate y una assertion keep-awake simple solo bloquean el sueño por inactividad. Cerrar la tapa activa un sueño clamshell separado que las assertions de inactividad no pueden detener — la Mac necesita un monitor externo activo, o el ajuste pmset -a disablesleep 1 que requiere permisos de administrador (lo que usa el modo Closed-Lid de LidRun), para mantenerse despierta con la tapa cerrada.

¿Qué pasa si mi script se cuelga y nunca termina?

Si estás usando el modo Keep Awake de LidRun con un temporizador de sesión configurado, ese temporizador limita la ejecución — de 30 minutos hasta 8 horas — para que un comando colgado no mantenga la Mac despierta indefinidamente. Un simple caffeinate -i no tiene ese límite; se mantiene hasta que el proceso termina o tú lo matas manualmente.

¿Funciona igual por SSH?

La herramienta keep-awake tiene que correr en la Mac que hace el trabajo, no en tu máquina local — SSH no cambia los temporizadores de sueño propios de esa Mac. Por separado, envuelve el comando remoto en nohup, screen o tmux para que una conexión caída o el cierre de tu terminal local no envíen SIGHUP y maten el trabajo, aunque la Mac remota se haya mantenido despierta.

¿Tienes curiosidad por saber si LidRun es para ti?

Deja que ChatGPT, Claude o Perplexity lo investiguen — haz clic abajo y mira qué opina la IA sobre LidRun.