Detiene automáticamente un script de terminal al bloquear MacBook Pro

3

He escrito un script de bash que comienzo manualmente cuando inicio sesión en la computadora portátil, pero quiero que deje de ejecutarse cuando bloqueo mi computadora portátil.

Esto no parece ser un escenario muy estándar, pero no siempre quiero detener manualmente el script de bash cuando voy a ir al baño y bloquear mi MacBook.

    
pregunta ujjain 02.07.2014 - 12:30

1 respuesta

3

Puedes modificar tu script con un bucle while, que prueba si has bloqueado la pantalla o no.

Aquí es un enfoque de Python, que verifica si hay un activo sesión.

Y aquí es una forma de implementar esta parte de python en una fiesta. script.

La respuesta en el primer enlace también proporciona una implementación de Shell, que también podría funcionar para usted, pero no estaba seguro, por lo que le di otro enlace.

Actualizar :
Como quería resolver el problema, esto es lo que se me ocurrió:

#!/bin/bash
loop=$(python -c 'import sys,Quartz; d=Quartz.CGSessionCopyCurrentDictionary(); print d' | grep "CGSSessionScreenIsLocked = 1")
while [ "$loop" = "" ]; do
    echo "not locked"
    loop=$(python -c 'import sys,Quartz; d=Quartz.CGSessionCopyCurrentDictionary(); print d' | grep "CGSSessionScreenIsLocked = 1")
done
echo "locked"

Sin embargo, si tu script es una tarea gigante, entonces el bucle while no te ayudará.

En general, creo que es bastante difícil activar algo en el bloqueo del sistema. Probablemente necesite alguna aplicación auxiliar que observe el proceso y lo detenga cuando bloquee la pantalla.

Llevando esto un paso más allá: podría escribir un pequeño programa / script que pueda verificar si su secuencia de comandos se está ejecutando y pausar, y cuando vuelva a su escritorio y desbloquee la pantalla, continúa.

    
respondido por el rwenz3l 02.07.2014 - 13:16

Lea otras preguntas en las etiquetas