Автоматический запуск скринсейвера из скрипта

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
IlyaT
Сообщения: 20
Зарегистрирован: 15 янв 2017, 18:22
Решено: 1
Поблагодарили: 4 раза
Контактная информация:

Автоматический запуск скринсейвера из скрипта

#1

19 фев 2017, 00:10

Пытаюсь автоматически запускать скринсейвер по вытаскиванию USB устройства.
Почему-то вот такая команда запускаемая от пользователя:
/bin/su ilya -c "DISPLAY=:0 /usr/bin/cinnamon-screensaver-command --lock"
вызывает скринсейвер, а при вызове от рута говорит что
Can't connect to screensaver!

Аватара пользователя

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

Автоматический запуск скринсейвера из скрипта

#2

19 фев 2017, 12:14

потому что графическая сессия как правило запускается под пользователем. Под рутом консоль. А в консоли какая заставка...

Аватара пользователя

Автор темы
IlyaT
Сообщения: 20
Зарегистрирован: 15 янв 2017, 18:22
Решено: 1
Поблагодарили: 4 раза
Контактная информация:

Автоматический запуск скринсейвера из скрипта

#3

19 фев 2017, 12:28

Dja писал(а):Под рутом консоль. А в консоли какая заставка.
Я это понимаю, поэтому делаю вот так:
/bin/su ilya -c

no avatar

symon2014

Автоматический запуск скринсейвера из скрипта

#4

19 фев 2017, 12:40

Извините, я тут на лыжах мимо пролетал, недопонял про рута и без него, что то мне кажется , что эту штуку (/bin/su) надо копать или в патчах или писать полный путь.

Аватара пользователя

zuzabrik
Сообщения: 1744
Зарегистрирован: 29 авг 2016, 12:08
Решено: 20
Благодарил (а): 108 раз
Поблагодарили: 521 раз
Контактная информация:

Автоматический запуск скринсейвера из скрипта

#5

19 фев 2017, 12:41

IlyaT писал(а): Я это понимаю, поэтому делаю вот так:
/bin/su ilya -c
Зачем делать смену пользователя на ilya перед тем как запускать скринсейвер? чем не устраивает просто cinnamon-screensaver-command --lock

Можешь попробовать запустить в таком виде - su --login -c "cinnamon-screensaver-command --lock" но не даю гарантий что сработает.
А мог бы стать нормальным человеком...

Аватара пользователя

Автор темы
IlyaT
Сообщения: 20
Зарегистрирован: 15 янв 2017, 18:22
Решено: 1
Поблагодарили: 4 раза
Контактная информация:

Автоматический запуск скринсейвера из скрипта

#6

19 фев 2017, 13:37

zuzabrik писал(а):Зачем делать смену пользователя на ilya перед тем как запускать
Так тоже не работает, но я понимаю почему - потому что у рута нет никакого скринсейвера и это логично.
На всякий случай поясню - скрипт дергается демоном udev который очевидно работает из по рута, а рабочий пользователь ilya и у него есть скринсейвер и его можно запустить из команды, но как запустить скинсейвер из udev ?

Аватара пользователя

zuzabrik
Сообщения: 1744
Зарегистрирован: 29 авг 2016, 12:08
Решено: 20
Благодарил (а): 108 раз
Поблагодарили: 521 раз
Контактная информация:

Автоматический запуск скринсейвера из скрипта

#7

19 фев 2017, 13:55

зайди с другого боку. отслеживай то что можешь отслеживать в сеансе пользователя. типа демона который висит и следит за смонтированными разделами и на основе его работы врубай сейвер. типа такого
А мог бы стать нормальным человеком...

Аватара пользователя

nimms
Сообщения: 22
Зарегистрирован: 23 сен 2016, 07:02
Решено: 3
Благодарил (а): 4 раза
Поблагодарили: 33 раза
Контактная информация:

Автоматический запуск скринсейвера из скрипта

#8

19 фев 2017, 23:05

Код: Выделить всё

# файл с правилом udev; nim - мой пользователь
$ cat /etc/udev/rules.d/usb-remove.rules
SUBSYSTEM=="usb", ACTION=="remove", RUN+="/bin/su nim -c 'DISPLAY=:0 /usr/bin/cinnamon-screensaver-command --lock'"

# перезагрузка правил udev
$ sudo udevadm control -R
Вставляю флешку, вытыкаю - экран блокируется. Так что всё должно работать. Может, у Вас правило неверно прописано?

Закрыто

Вернуться в «Cinnamon»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей