Respostas:
Você pode encontrar os eventos da tela de desbloqueio usando o seguinte comando:
grep screen /var/log/auth.log*
Mas não é tão simples encontrar os eventos da tela de bloqueio porque, por padrão, não existe nenhum log para esses eventos (tanto quanto eu sei).
De qualquer forma, você pode executar o seguinte comando para registrar os eventos da tela de bloqueio:
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | ( while true; do read X; if echo "$X" | grep "boolean true" &> /dev/null; then echo "Screen locked on $(date)" > $HOME/lock_screen.log; fi; done )
no ~/lock_screen.log
arquivo.
Se você gosta do comando acima, use-o em um script e faça com que o script seja executado automaticamente na inicialização.
Referências:
dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6'"
é signal time=1497336035.520628 sender=org.freedesktop.DBus -> destination=:1.140 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired string ":1.140" signal time=1497336035.520706 sender=org.freedesktop.DBus -> destination=:1.140 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost string ":1.140"
, então nada quando eu bloquear ou desbloquear
FWIW: o que funciona para mim no Ubuntu 16.04.4 LTS com Unity, está monitorando o DBUS com o seguinte comando:
dbus-monitor --session "type='signal',interface='com.canonical.Unity.Session'"
... e depois monitorando os eventos "Bloqueados" e "Desbloqueados". Exemplo de saída:
tempo de sinal = 1525269138.855107 remetente =: 1,51 -> destino = (destino nulo) serial = 86735 caminho = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; member = LockRequested
tempo de sinal = 1525269139.409261 remetente =: 1,51 -> destino = (destino nulo) serial = 86892 caminho = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; member = Bloqueado
tempo de sinal = 1525269151.238899 remetente =: 1,51 -> destino = (destino nulo) serial = 86937 caminho = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; member = UnlockRequested
tempo de sinal = 1525269151.791874 remetente =: 1,51 -> destino = (destino nulo) serial = 86938 caminho = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; member = Desbloqueado
É isso que eu uso no Ubuntu 16.04. Ele faz logon no syslog do sistema.
Adicione à sua pasta pessoal, marque como executável e use-o gnome-session-properties
para configurá-lo para executar na inicialização da sessão.
#!/bin/bash
exit_report(){
logger "$(date) Lockscreen Monitoring Terminated."
}
trap "exit_report; exit;" 0
lockmon() {
adddate() {
while IFS= read -r line; do
echo $line | grep string | grep '"start"' -q
if [ $? -eq 0 ] ; then
logger "$(date) Screen locked"
fi
echo $line | grep string | grep '"stop"' -q
if [ $? -eq 0 ] ; then
logger "$(date) Screen unlocked"
fi
done
}
logger "$(date) Lockscreen Monitoring Started."
dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6.Instance'" | adddate
}
lockmon
Baseado em uma resposta semelhante para os sistemas Fedora .
cat screen /var/log/auth.log | grep unlock
- não é necessário sudo.