7 votos

MacBook Air/Pro: ejecutar la secuencia de comandos en la tapa de cierre?

¿Cómo se pueden configurar MacOS (10.8 o superior) para automáticamente y llame inmediatamente a un designado por el usuario de secuencia de comandos (probablemente un script de bash) cuando el usuario cierre la tapa de la pantalla de un MacBook Air o Pro?

Detalles.

Quiero hacer esto porque en algunos casos mi MacBook Air 2013 ejecutando 10.8.5 no inmediatamente sueño/bloqueo de la pantalla con la tapa de cierre (posiblemente debido a que un cliente VPN está tratando de abrir una conexión). Como tal, quiero que el sistema para ejecutar de forma inmediata un script que llama a esta pantalla de-ahorro-y-procedimiento de bloqueo en la tapa de cierre. Sin embargo, no sé cómo llamar a los scripts en la pantalla-la tapa de cierre.

6voto

M K Puntos 8307

No parece ser una manera para que un programa para recibir una notificación cuando la tapa está cerrada. Sin embargo, el estado de la tapa puede ser monitoreada periódicamente (y en este caso en particular, cada segundo) y las acciones tomadas con base en la tapa estado.

Yo no conozco ningún programa que puede proporcionar una solución completa para sus necesidades, pero usted puede utilizar la siguiente información para construir una solución.

  1. Descargar este clamshellstate.pl script de perl
  2. Se puede ejecutar en Terminal (en /Applications/Utilities) como:

    ./clamshellstate.pl 1  
    

    para obtener una salida como "Abierto" o "Cerrado", que indica que la corriente de la tapa estado

  3. Crear un script de shell como (sustituto de la secuencia de comandos para ejecutar un intérprete de comandos que desea ejecutar):

    ./clamshellstate.pl 1 | grep Closed > /dev/null && *script-to-run*
    
  4. Configurar este script para que se ejecute una vez cada segundo, con launchd.plist. O el uso de Lingon para configurar fácilmente launchd.plist.

Nota: en Lugar de clamshellstate.pl usted también puede usar el siguiente comando en Terminal:

ioreg -r -k AppleClamshellState | grep '"AppleClamshellState" = Yes' | cut -f2 -d"="

para obtener un "Sí" para el estado cerrado y un "No" para el estado abierto.

3voto

También puede probar utilizando SleepWatcher. Consulte el archivo léame para obtener instrucciones:

1. Instalar el SleepWatcher software:

$ sudo mkdir -p /usr/local/sbin /usr/local/share/man/man8
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher /usr/local/sbin
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8

2. Lea la página man y pensar acerca de las características de SleepWatcher que desea utilizar:

$ man sleepwatcher

3. Escribir pequeños scripts de shell que realizar las acciones que desea activar por SleepWacher y prueba de ellos.

4. Prueba tus scripts en combinación con SleepWatcher, se inició en el primer plano en una ventana de Terminal, e. g.:

$ /usr/local/sbin/sleepwatcher --verbose --sleep /path/to/your/sleepscript --wakeup /path/to/your/wakeupscript ...

5. Pon tu SleepWatcher de la línea de comandos en un launchd archivo de configuración del agente. Como un ejemplo, usted puede utilizar uno de los plists de ~/Desktop/sleepwatcher_2.2/config. Para obtener más información acerca de launchd y su configuración, consulte las páginas man para launchd y launchd.plist y http://developer.apple.com/macosx/launchd.html.

6. Copia de su launchd agente de configuración en /Library/LaunchDaemons o ~/Library/LaunchAgents, dependiendo de si usted necesita un sistema de demonio o de un agente de usuario.

7. La carga de la launchd de configuración del agente mediante launchctl (ver ejemplos anteriores y la launchctl hombre de la página).

2voto

AisIceEyes Puntos 8

Usted podría tratar de usar el ControlPlane aplicación que puede actuar sobre los diferentes cambios de estado en su Mac, incluyendo si la tapa está cerrada o no.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X