回答:
次のコマンドを使用して、画面ロック解除イベントを見つけることができます。
grep screen /var/log/auth.log*
しかし、ロック画面イベントを見つけるのはそれほど簡単ではありません。デフォルトでは、これらのイベントのログは存在しません(私の知る限り)。
とにかく、ロック画面イベントを記録するために次のコマンドを実行できます。
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 )
で~/lock_screen.log
ファイル。
上記のコマンドが気に入った場合は、スクリプトで使用して、起動時にスクリプトを自動的に実行するようにします。
参照:
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"
、その後、ロックまたはロック解除しても何もありません
FWIW:Unityを使用したUbuntu 16.04.4 LTSで機能するのは、次のコマンドでDBUSを監視していることです。
dbus-monitor --session "type='signal',interface='com.canonical.Unity.Session'"
...そして、「ロック」および「ロック解除」イベントを監視します。出力例:
signal time = 1525269138.855107 sender =:1.51-> destination =(null destination)serial = 86735 path = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; member = LockRequested
signal time = 1525269139.409261 sender =:1.51-> destination =(null destination)serial = 86892 path = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; member = Locked
signal time = 1525269151.238899 sender =:1.51-> destination =(null destination)serial = 86937 path = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; member = UnlockRequested
signal time = 1525269151.791874 sender =:1.51-> destination =(null destination)serial = 86938 path = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; member = Unlocked
これは、Ubuntu 16.04で使用しているものです。システムのsyslogに記録します。
ホームフォルダーに追加し、実行可能としてマークし、それを使用gnome-session-properties
して、セッションの起動時に実行するように構成します。
#!/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
Fedoraシステムの同様の回答に基づいています。
cat screen /var/log/auth.log | grep unlock
-sudoは必要ありません。