Este script sleep.d
deve funcionar (substitua <youruser>
por um usuário para o qual você tenha a senha. Eu o executei com root pela primeira vez e não pude voltar):
#!/bin/sh
case "$1" in
hibernate|suspend)
;;
thaw|resume)
USER=<youruser> /usr/bin/vlock -ans &
echo $! > /var/run/vlock.pid
/opt/bin/timeout_vlock.sh &
;;
*) exit $NA
;;
esac
O conteúdo de /opt/bin/timeout_vlock.sh
:
#!/bin/bash
TIMEOUT=10
while kill -0 $(< /var/run/vlock.pid); do
[ $TIMEOUT -le 0 ] && break
sleep 1
let TIMEOUT--
done
rm /var/run/vlock.pid
[ $TIMEOUT -le 0 ] && shutdown -h now
Ajuste TIMEOUT
para o valor desejado e certifique-se de dar permissão de execução: 'chmod + x /opt/bin/timeout_vlock.sh'.
O script sleep.d
usa vlock para bloquear todos os ttys (mesmo aquele com X), desabilitar sysrq e solicitar sua senha de usuário para desbloquear. Ele salva o pid do vlock para uso posterior.
O timeout_vlock.sh
espera que o vlock termine (o que acontece quando você insere sua senha). Se TIMEOUT for atingido, ele desligará o sistema.