Respuestas:
Puede encontrar los eventos de desbloqueo de pantalla con el siguiente comando:
grep screen /var/log/auth.log*
Pero no es tan sencillo encontrar los eventos de la pantalla de bloqueo porque, por lo que sé, no existe ningún registro para estos eventos.
De todos modos, puede ejecutar el siguiente comando para registrar los eventos de la pantalla de bloqueo:
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 )
en el ~/lock_screen.log
archivo
Si le gusta el comando anterior, úselo en un script y haga que el script se ejecute automáticamente al inicio.
Referencias
dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6'"
es 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"
, entonces nada cuando bloqueo o desbloqueo
FWIW: lo que funciona para mí en Ubuntu 16.04.4 LTS con Unity es monitorear DBUS con el siguiente comando:
dbus-monitor --session "type='signal',interface='com.canonical.Unity.Session'"
... y luego monitoreando los eventos "bloqueados" y "desbloqueados". Salida de ejemplo:
tiempo de señal = 1525269138.855107 remitente =: 1.51 -> destino = (destino nulo) serial = 86735 ruta = / com / canonical / Unity / Session; interfaz = com.canonical.Unity.Session; miembro = LockRequested
tiempo de señal = 1525269139.409261 remitente =: 1.51 -> destino = (destino nulo) serial = 86892 ruta = / com / canonical / Unity / Session; interfaz = com.canonical.Unity.Session; miembro = bloqueado
tiempo de señal = 1525269151.238899 remitente =: 1.51 -> destino = (destino nulo) serial = 86937 ruta = / com / canonical / Unity / Session; interfaz = com.canonical.Unity.Session; miembro = UnlockRequested
tiempo de señal = 1525269151.791874 remitente =: 1.51 -> destino = (destino nulo) serial = 86938 ruta = / com / canonical / Unity / Session; interfaz = com.canonical.Unity.Session; miembro = desbloqueado
Esto es lo que uso en Ubuntu 16.04. Se registra en el syslog del sistema.
Agregue a su carpeta de inicio, marque como ejecutable y luego use gnome-session-properties
para configurarlo para que se ejecute al iniciar la sesión.
#!/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
Basado en una respuesta similar para los sistemas Fedora .
cat screen /var/log/auth.log | grep unlock
- no es necesario sudo.