Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: При запуске из автозагрузки не срабатывает команда блокировки экрана  (Прочитано 1193 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн большевик

  • Автор темы
  • Участник
  • *
  • Сообщений: 206
    • Просмотр профиля
Права на исполнение у скрипта есть.

Проблема вот такая: скрипт исполняется, но конкретно нужную команду не выполняет (или выполняет неудачно).

А команда вот такая

gnome-screensaver-command --lock
Как я убедился в том что скрипт запускается - добавил в него дополнительные команды, для проверки:

mkdir DO
gnome-screensaver-command --lock
mkdir POSLE

После загрузки рабочего стола захожу в домашнюю паапку и вижу - там благополучно созданы папки DO и POSLE.
Но блокировки экрана после загрузки не было!

При этом, если я запускаю скрипт сам, вручную, вот так

pavel@pavel-H55M-D2H:~$ ~/BASHSCR/BASH_COMMAND_SCRIPTS/blockmonitor.sh

то скрипт выполняется полностью - и папки создаёт, и экран блокирует.

А при будучи вызванным из автозагрузки - команда блокировки экрана в этом скрипте не срабатывает.

В чём может быть причина проблемы?

М.б. в том что порядок вызова программ прописанных в автозагрузке не определён и этот скрипт пытается выполнить команду для какого-то компонента, который на этот момент ещё не успел сам подгрузиться?

Пользователь решил продолжить мысль 23 Июля 2015, 09:21:54:
Ответ перенесён из предъидущей темы.

Цитировать
М.б. в том что порядок вызова программ прописанных в автозагрузке не определён и этот скрипт пытается выполнить команду для какого-то компонента, который на этот момент ещё не успел сам подгрузиться?

Скорее всего так и есть, попробуй с небольшой "паузой" так:

Код: (bash) [Выделить]
#!/bin/bash
sleep 3
gnome-screensaver-command --lock
exit

Попробую так сделать.

ТС не появлялся на Форуме более полугода по состоянию на 13/07/2019 (последняя явка: 07/11/2018). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 13 Июля 2019, 21:37:37 от zg_nico »
Ubuntu 24.04.1 LTS,   
(AMD Ryzen™ 7 5700G, ОЗУ: 32,0 ГиБ)

Оффлайн RUstorm

  • Активист
  • *
  • Сообщений: 701
    • Просмотр профиля
gnome-screensaver-command --lock
проверил, работает, возможно у вас система долго загружается sleep должен помочь

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
L~$
L~$ gnome-screensaver-command -l && gnome-screensaver-command -q
Заставка экрана включёна
L~$
L~$ gnome-screensaver-command -q
Заставка экрана выключёна
L~$
L~$

Wars ~.o

Оффлайн большевик

  • Автор темы
  • Участник
  • *
  • Сообщений: 206
    • Просмотр профиля
victor00000,

#!/bin/bash
sleep 3
mkdir /home/pavel/BASHSCR/BASH_COMMAND_SCRIPTS/DO
gnome-screensaver-command -l && gnome-screensaver-command -q
mkdir /home/pavel/BASHSCR/BASH_COMMAND_SCRIPTS/POSLE

Не работает блокировка =(   (хотя папки создаёт)

Иногда бывает мелькнёт окошко "ввидите пароль" но оно тут же само пропадает и не блокирует экран..
Ubuntu 24.04.1 LTS,   
(AMD Ryzen™ 7 5700G, ОЗУ: 32,0 ГиБ)

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
...
gnome-screensaver-command -l && gnome-screensaver-command -q >/tmp/gscreen.log
...
ребут и лог.
cat /tmp/gscreen.log
Wars ~.o

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Иногда бывает мелькнёт окошко "ввидите пароль" но оно тут же само пропадает и не блокирует экран..
Скорее всего включен автовход: смотрим файл /etc/lightdm/lightdm.conf
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
старт первый для ~/.xprofile это скрипт.
пример.
gnome-screensaver-command -l
while true
do
LANG=C gnome-screensaver-command -q | grep inactive && break
sleep 1
done
Wars ~.o

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Вместо sleep N лучше сделать так:

Код: (bash) [Выделить]
while ! `gnome-screensaver-command --lock &> ~/Log.file`; do
EXIT_STATUS=$?
sleep 1
N+=1
[ $N = 10 ] && { echo "Код завершения: $EXIT_STATUS" >> ~/Log.file; exit; }
done

Код запустит команду : "gnome-screensaver-command --lock"
или после 10 неудачных запусков в течении 10 секунд, запишет вывод команды и код завершения в ~/Log.file и выйдет.

Оффлайн большевик

  • Автор темы
  • Участник
  • *
  • Сообщений: 206
    • Просмотр профиля
...
gnome-screensaver-command -l && gnome-screensaver-command -q >/tmp/gscreen.log
...
ребут и лог.
cat /tmp/gscreen.log


Добавил эту строчку логирования.
После перезагрузки всё тоже самое - блокировка не сработала.

Содержимое файла gscreen.log:
Заставка экрана включёна
Примечание 1. После перезагрузки по всей системе наблюдался глюк с текстом - все папки (включая те что в корне), письма в списке  thunderbirg  и т.д. - везде были кривые имена - с пропущенными некоторыми буквами (заменёнными на проблемы).
При просмотре ч/з терминал успокоился что по-факту имена в порядке - просто что-то с отображением в графике видимо. Сразу отключил скрипт блокировки, рестартанулся - теперь загрузилось норм.

Примечание 2. Не знаю м.б. это как-то связано с изследуемой в теме проблемой - при загрузке каждый раз (это было уже давно)  выскакивает окно с предложением ввести ключ для разблокироваки связки ключей - я его игнорирую и просто закрываю не вводя ничего, после чего продолжаю работать в системе.
« Последнее редактирование: 29 Июля 2015, 09:39:21 от большевик »
Ubuntu 24.04.1 LTS,   
(AMD Ryzen™ 7 5700G, ОЗУ: 32,0 ГиБ)

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
большевик,
нет, вот папробуй
старт первый для ~/.xprofile это скрипт.
пример.
gnome-screensaver-command -l
while true
do
LANG=C gnome-screensaver-command -q | grep inactive && break
sleep 1
done

Wars ~.o

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
victor00000,
Цитировать
gnome-screensaver-command -l
while true
do
LANG=C gnome-screensaver-command -q | grep inactive && break
sleep 1
done

Какой смысл первой строкой gnome-screensaver-command -l который возвратит (Заставка экрана включёна "active") потом цикл, и при состоянии inactive обрыв цикла?
Может быть так?

Код: (bash) [Выделить]
#!/bin/bash
while :; do
LANG=C gnome-screensaver-command -q | grep -q inactive && gnome-screensaver-command -l && break
sleep 1
done
exit 0
« Последнее редактирование: 30 Июля 2015, 18:59:41 от <Fryvrvywr> »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
<Fryvrvywr>,
ты папробувал ~/.xprofile ?
не будет рабочий стол, пока пароль.

Wars ~.o

 

Страница сгенерирована за 0.018 секунд. Запросов: 19.