Следующий скрипт запишет время блокировки / разблокировки в файл time_xprofile
в вашем доме.
#!/bin/bash
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | \
( while true
do read X
if echo $X | grep "boolean true" &> /dev/null; then
echo "locking at $(date)" >> $HOME/time_xprofile
elif echo $X | grep "boolean false" &> /dev/null; then
echo "unlocking at $(date)" >> $HOME/time_xprofile
fi
done )
сохранить сценарий Дайте ему разрешение на исполнение.
chmod +x script.sh
Как бегать
./script.sh &
Примечание . Сценарий должен работать в фоновом режиме. Не убивай это. Если вы включите блокировку / разблокировку экрана во время выполнения сценария в фоновом режиме, время блокировки / разблокировки будет записано в time_xprofile
файле у вас дома. Его можно использовать для запуска какой-либо команды или скрипта при блокировке / разблокировке экрана.
Помните, что если вы закроете текущий терминал, ваш скрипт будет убит. Ты можешь использовать
nohup ./script.sh &
Затем он продолжит работу даже после закрытия терминала.
Как убить скрипт
Чтобы убить процесс, используйте в терминале
ps ax| grep "[s]cript.sh" | cut -d' ' -f2 | xargs kill
Выше сценарий вдохновлен этим ответом