Detener automáticamente una secuencia de commands de terminal al bloquear MacBook Pro

He escrito una secuencia de commands bash que inicio manualmente cuando inicio session en la computadora portátil, pero quiero que deje de funcionar cuando locking mi computadora portátil.

Esto no parece un escenario muy estándar, pero no siempre quiero detener manualmente el script bash cuando me tomo un baño y cierro mi MacBook.

  • Dentro del terminal, el command `date` da como resultado un curioso prefijo donde debería estar
  • mail y mailx no pueden enviar correos electrónicos a gmail
  • Escribir> console en el cuadro de nombre de usuario: nada aparece hasta que se cancela
  • Quiero eliminar una input en mi $ PATH
  • Biblioteca no cargada: /usr/lib/libaprutil-1.0.dylib
  • ¿Cómo usar las teclas de function en el iPad con el keyboard de Apple?
  • Iniciar / Detener el uso compartido de Internet a través de Terminal en Yosemite sin AppleScript
  • Total Terminal abre una nueva pestaña por separado en macOS High Sierra
  • One Solution collect form web for “Detener automáticamente una secuencia de commands de terminal al bloquear MacBook Pro”

    Puede modificar su secuencia de commands con un ciclo while, que testing si ha bloqueado la pantalla o no.

    Aquí hay un enfoque de Python, que busca una session activa.

    Y aquí hay una forma de implementar esta parte de python en un script bash.

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

    Actualización :
    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 su script es una tarea gigante, entonces el ciclo while no lo ayudará.

    En general, creo que es bastante difícil activar algo en el locking del sistema. Probablemente necesites alguna aplicación de ayuda que observe el process y lo detenga cuando bloquees la pantalla.

    Llevando esto un paso más allá: podría escribir un pequeño progtwig / script que pueda verificar si el script se está ejecutando y pausarlo, y cuando esté de vuelta en su escritorio y desbloquee la pantalla, continuará.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).