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

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

Автор темы
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
Сообщения: 2688
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 386 раз
Поблагодарили: 276 раз

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

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

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

В поисках истины :grabli:

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

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

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

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

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

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

symon2014
Сообщения: 1578
Зарегистрирован: 29 авг 2016, 02:17
Решено: 19
Откуда: Феодосия
Благодарил (а): 47 раз
Поблагодарили: 425 раз

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

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

Извините, я тут на лыжах мимо пролетал, недопонял про рута и без него, что то мне кажется , что эту штуку (/bin/su) надо копать или в патчах или писать полный путь.
:sry:
Debian (9.1) , LMDE2 , LM 18.2 Mate . Благодарности складываем сюда ---> R320161344462

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

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

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

Сообщение 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
Сообщения: 759
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 222 раза

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

Сообщение 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»