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

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

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

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

Сообщение IlyaT » 18 фев 2017, 21:10

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

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

Dja
Сообщения: 4018
Зарегистрирован: 27 авг 2016, 17:03
Решено: 13
Откуда: Воскресенск
Благодарил (а): 557 раз
Поблагодарили: 424 раза

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

Сообщение Dja » 19 фев 2017, 09:14

потому что графическая сессия как правило запускается под пользователем. Под рутом консоль. А в консоли какая заставка...
Новичок? - ознакомься с правилами
и Панель форматирования
Изображение
В поисках истины :pc2:

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

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

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

Сообщение IlyaT » 19 фев 2017, 09:28

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


symon2014

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

Сообщение symon2014 » 19 фев 2017, 09:40

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

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

zuzabrik
Сообщения: 1026
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 64 раза
Поблагодарили: 301 раз

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

Сообщение zuzabrik » 19 фев 2017, 09:41

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

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

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

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

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

Сообщение IlyaT » 19 фев 2017, 10:37

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

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

zuzabrik
Сообщения: 1026
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 64 раза
Поблагодарили: 301 раз

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

Сообщение zuzabrik » 19 фев 2017, 10:55

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

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

nimms
Сообщения: 22
Зарегистрирован: 23 сен 2016, 04:02
Решено: 3
Благодарил (а): 4 раза
Поблагодарили: 31 раз

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

Сообщение nimms » 19 фев 2017, 20: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»