Наступний сценарій записує час блокування / розблокування у файл 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
Вище написаний сценарій натхненний цією відповіддю