jueves, enero 22, 2015

caffeinate: Evitar que el MacOS X entre en reposo de manera automática

Hasta la versión 10.7.x Lion de MacOS X era sencillo configurar el sistema para evitar que entrara en reposo cuando estaba conectado a la red eléctrica era sencillo. En las preferencias del sistema, en el panel Economizador había una opción que permitía controlar cuando el ordenador entraba en reposo. Como puede verse en la siguiente captura de pantalla, se configura el mismo para que cuando esté conectado, nunca entre en reposo.

Esta configuración es útil si estás bajando un archivo de Internet o si estás corriendo máquinas virtuales con un producto como VMware Fussión o VirtualBox.Sin embargo, llevaba un tiempo notando en el ordenador que tengo del trabajo, que tiene la versión 10.9 Mavericks del sistema, que éste entraba en reposo, sin más, parando máquinas virtuales que ejecuto bajo vmware fusion. El problema es que la opción que permitía en las antiguas versiones del sistema desconectar estar entrada en reposo había desaparecido

Existe un comando que evita que el sistema entre en reposo de manera automática. Se trata de caffeinate. Con esta orden se puede controlar cual va a ser el comportamiento de la gestión de energía del MacOX. Hay dos maneras de usarla:

  • Indicar al sistema que no entre en reposo durante un tiempo determinado. Por ejemplo, si tenemos el sistema conectado a corriente eléctrica y queremos que no entre en reposo durante 10 minutos
    baldurgate:Documents terron$caffeinate -s -t 10
  • Indicar al sistema que no entre en reposo hasta que no termine de ejecutarse la utilidad que se indica como parámetro en la línea de comandos de caffeinate. Por ejemplo, no quiero que el sistema, se apague hasta que no se ejecute el comando scp contra un servidor remoto.
    baldurgate:Documents terron$caffeinate -s scp large_file.tgz terron@10.10.10.10:.

Aprovechando este comando, lo que suelo hacer si no quiero que la máquina entre en estado de reposo es usar caffeinate con un ping cada minuto al router. Puesto que el comando ping nunca termina - en realidad nos vale cualquier comando que no termine -

baldurgate:Documents terron$caffeinate -s ping -i 60 192.168.1.1

Se puede crear distintos tipos de marcas que impidan en función del subsistema que queramos evitar que entre en reposo. En los ejemplos anteriores como uso la opción -s le indico que el sistema no entre en reposo sólo si está conectado a la corriente eléctrica. Con la opción -i se evita que el sistema entre en reposo con independencia de cual sea su fuente de alimentación, con -d se evita que el sistema ponga en reposo la pantalla y con -m se evita que el sistema ponga en reposo los discos. Por último existe la opción -u para indicar que el usuario está activo. En este caso, activa la patalla si estuviera en reposo y evita que por 5 segundos entre de nuevo en reposo, a menos que se especifique un timeout con -t

No hay comentarios: