Я ищу способ сохранить время блокировки / разблокировки экрана.
A=$(date)
echo $A >> $HOME/time_xprofile
Что я попробовал:
$HOME/.bashrc
$HOME/.bash_logout
$HOME/.bash_prompt
$HOME/.xprofile
Затем я заблокировал экран и проверил, появляется ли файл и происходит ли каждый раз сбой. Как я могу проверить время, чем?
Следующий сценарий запишет, блокируют/разблокируют время в файле 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
Выше сценария вдохновлено этот ответ
В человечности 14.04 событие DBus для экранной блокировки разблокировало, изменился, и новый сценарий для привязки, чтобы экранировать блокировку и разблокировать события похож на следующий
dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6'" | \
(
while true; do
read X
if echo $X | grep "desktop-lock" &> /dev/null; then
SCREEN_LOCKED;
elif echo $X | grep "desktop-unlock" &> /dev/null; then
SCREEN_UNLOCKED;
fi
done
)
Замена SCREEN_LOCKED и SCREEN_UNLOCKED с тем, что необходимо сделать.