Как запустить команду или скрипт при блокировке / разблокировке экрана?

Как Вы упомянули - это в основном зависит от компилятора и платформы. Для этого проверьте стандарт ANSI, , http://home.att.net/~jackklein/c/inttypes.html

Вот является тем для компилятора Microsoft: Диапазоны Типа данных .

19
задан 15.05.2020, 02:39

2 ответа

Следующий сценарий запишет, блокируют/разблокируют время в файле 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

Выше сценария вдохновлено этот ответ

20
ответ дан 15.05.2020, 02:40
  • 1
    Больше, чем это: это только работает несколько раз... – flo 15.05.2020, 02:40
  • 2
    Он все еще работающий в человечности 17.10 с XServer? Я don' t знают, почему не работает на меня.. – Andrew Falanga 15.05.2020, 02:41
  • 3
    @eddieferetro я нахожусь все еще на 16,04, не может протестировать его на Вас. Почему don' t Вы задают новый вопрос, определяющий Ваши проблемы? Событие Dbus для экранной блокировки может быть изменено в 17,10 – Peter Mortensen 15.05.2020, 02:41

В человечности 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 с тем, что необходимо сделать.

6
ответ дан 15.05.2020, 02:39

Теги

Похожие вопросы