Risposte:
Puoi trovare gli eventi della schermata di sblocco usando il seguente comando:
grep screen /var/log/auth.log*
Ma non è così semplice trovare gli eventi della schermata di blocco perché per impostazione predefinita non esiste alcun registro per questi eventi (per quanto ne so).
Ad ogni modo, è possibile eseguire il comando seguente per registrare gli eventi della schermata di blocco:
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 )
nel ~/lock_screen.log
file.
Se ti piace il comando sopra, quindi usalo in uno script e fai che lo script venga eseguito automaticamente all'avvio.
Riferimenti:
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"
, quindi nulla quando blocco o sblocco
FWIW: ciò che funziona per me su Ubuntu 16.04.4 LTS con Unity, sta monitorando DBUS con il seguente comando:
dbus-monitor --session "type='signal',interface='com.canonical.Unity.Session'"
... e quindi il monitoraggio degli eventi "Bloccati" e "Sbloccati". Esempio di output:
tempo del segnale = 1525269138.855107 mittente =: 1.51 -> destinazione = (destinazione nulla) seriale = 86735 percorso = / com / canonico / Unità / Sessione; interface = com.canonical.Unity.Session; membro = LockRequested
tempo del segnale = 1525269139.409261 mittente =: 1.51 -> destinazione = (destinazione nulla) seriale = 86892 percorso = / com / canonico / Unità / Sessione; interface = com.canonical.Unity.Session; membro = Bloccato
tempo del segnale = 1525269151.238899 mittente =: 1.51 -> destinazione = (destinazione nulla) seriale = 86937 percorso = / com / canonico / Unità / Sessione; interface = com.canonical.Unity.Session; membro = UnlockRequested
tempo del segnale = 1525269151.791874 mittente =: 1.51 -> destinazione = (destinazione nulla) seriale = 86938 percorso = / com / canonico / Unità / Sessione; interface = com.canonical.Unity.Session; membro = sbloccato
Questo è quello che uso in Ubuntu 16.04. Accede al syslog di sistema.
Aggiungi alla tua cartella home, segna come eseguibile, quindi usa gnome-session-properties
per configurarlo per l'avvio all'avvio della sessione.
#!/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
Basato su una risposta simile per i sistemi Fedora .
cat screen /var/log/auth.log | grep unlock
- nessun sudo necessario.