$ ps wafux | grep [x]autolock
user 21410 0.0 0.0 20124 2628 ? S Nov05 0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
Однако, когда я пытаюсь заблокировать это :
$ xautolock -locknow
Could not locate a running xautolock.
Если я раскручиваю другой, xautolock
это работает:
$ xautolock -time 10 -notify 30 -notifier "notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds'" -locker slock&
[2] 18828
$ ps wafux | grep [x]autolock
user 21410 0.0 0.0 20124 2628 ? S Nov05 0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
user 18828 0.0 0.0 20124 2708 pts/1 S 08:30 0:00 \_ xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
$ xautolock -locknow # Runs fine and locks the desktop
Что дает?
К настоящему времени я видел это как на своем настольном компьютере, так и на ноутбуке. Обратите внимание, что по крайней мере в первый раз после блокировки загрузки работает нормально. Это только после некоторого неизвестного времени или события это начинает терпеть неудачу.
Я не смог воспроизвести это надежно. То есть, я попробовал следующие подходы на своем ноутбуке, и в обоих случаях ярлык / команда заставки фактически блокирует рабочий стол:
- Закройте крышку
- Подождите, пока компьютер перейдет в спящий режим
- Откройте крышку
- Нажмите кнопку питания
- Введите пароль для входа, а затем Enter
и
- Блокировка рабочего стола
- Те же шаги, что и выше
Отслеживание кода:
- Строка, которая печатает сообщение об ошибке :
error1 ("Could not locate a running %s.\n", progName);
- Это случается, если
messageToSend
правдива иtype != XA_INTEGER
Похоже,
type
это установлено в следующем утверждении:(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False, AnyPropertyType, &type, &format, &nofItems, &after, (unsigned char**) &contents);
Означает ли это, что обнаружение бега xautolock
может зависеть от окна , которое сфокусировано? Мне также интересно, может ли этот вызов быть связан с этой известной ошибкой :
- Параметры -disable, -enable, -toggle, -exit, -locknow, -unlocknow и -restart зависят от доступа к X-серверу для выполнения своей работы. Это означает, что они будут приостановлены в случае, если какое-то другое приложение захватит сервер полностью для себя.
Возможно ли, что xautolock
конфликтует xss-lock
, оба из которых используют slock
? В дополнение к xautolock
строке выше у меня также есть эта строка в .xprofile :
xss-lock slock &
Поскольку оба xautolock
и xss-lock
могут позвонить slock
, я подозреваю, что проблема идет примерно так:
xautolock
работаетslock
через 10 минут бездействия.xss-lock
также пытается запуститьslock
через 10 минут :$ xset q | grep --after-context=2 --line-regexp --fixed-strings 'Screen Saver:' Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600
- Только один
slock
клиент на самом деле порожден. xss-lock
убивает неправильноslock
, что приводитxautolock
к краху или сдаче.
Так как я xss-lock
могу обнаружить сон ноутбука, я бы хотел использовать его вместо xautolock
, но я не могу заставить его xss-lock
работать notify-send
.
.xinitrc
: я переключился на --user
служебный файл, и это больше не проблема ...
stop-screensaver=no
к ~/.mpv/config
. Конечно, это означает, что вы должны вручную отключить блокировку при воспроизведении видео с mpv.