Potresti modificare il tuo script con un ciclo while, che verifica se hai bloccato lo schermo o meno.
Qui è un approccio python, che verifica la presenza di sessione.
E qui è un modo per implementare questa parte python in una bash script.
La risposta nel primo link fornisce anche un'implementazione della shell, che potrebbe funzionare anche per te, ma non ero sicuro, quindi ti ho dato un altro link.
Aggiornamento :
Perché volevo risolvere il problema, ecco cosa mi è venuto in mente:
#!/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"
Tuttavia, se lo script è un'attività gigantesca, il ciclo while non ti aiuterà.
In generale, penso, è piuttosto difficile attivare qualcosa sul blocco del sistema. Probabilmente hai bisogno di un'applicazione di supporto che controlli il processo e lo interrompa quando blocchi lo schermo.
Fare un ulteriore passo avanti: potresti scrivere un piccolo programma / script in grado di controllare se il tuo script è in esecuzione e metterlo in pausa, e quando torni alla scrivania e sblocchi lo schermo, continua.