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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Неправильная работа скрипта в Udev  (Прочитано 542 раз)

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

Оффлайн Manch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Неправильная работа скрипта в Udev
« : 11 Апреля 2017, 14:28:57 »
Добрый день. Возникла проблема: скрипт, вызываемый правилом udev отрабатывает частично, одна команда не выполняется. Буду рад советам, как это исправить или хотя бы пояснению, почему это не работает.

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

Файл /etc/udev/rules.d/84-test-rule.rules
ACTION=="remove", RUN+="/bin/bash -c '/usr/bin/sblock.sh >> /home/username/udev_test_log.txt
Файл /usr/bin/sblock.sh
#!/bin/bash
echo Hello, its script from udev #эта строка выполняется, появляясь в файле udev_test_log.txt
xdg-screensaver lock #но блокировка экрана не происходит

Если запустить скрипт из терминала, он отрабатывает полностью, блокируя экран
Система kubuntu 16.04. Заранее спасибо

ТС не появлялся на Форуме более полугода по состоянию на 14/07/2019 (последняя явка: 23/08/2017). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 14 Июля 2019, 04:42:20 от zg_nico »

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Неправильная работа скрипта в Udev
« Ответ #1 : 11 Апреля 2017, 15:52:31 »
ACTION=="remove", RUN+="/usr/bin/sblock.sh"
#!/bin/bash
export DISPLAY=:0
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
echo "$(date '+%H:%M:%S') Hello, its script from udev" > /home/username/udev_test_log.txt
xdg-screensaver lock &
exit 0

Оффлайн Manch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Неправильная работа скрипта в Udev
« Ответ #2 : 11 Апреля 2017, 17:54:02 »
renzrv, то же самое. Файл с датой и сообщением появляется, блокировщик не отрабатывает.

Up! Возможно, проблема в локере. Скрипт отрабатывает нормально при зупуске через консоль с обычными правами. Если запустить через sudo, в консоль выводится
Цитировать
ERROR: unknown command 'lock'
Если заменить lock на activate, то с обычными правами отрабатывает правильно, под sudo экран на мгновение гаснет и снова зажигается, но блокировка не происходит.
« Последнее редактирование: 11 Апреля 2017, 18:26:49 от Manch »

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 695
    • Просмотр профиля
Re: Неправильная работа скрипта в Udev
« Ответ #3 : 11 Апреля 2017, 18:05:57 »
Manch, вот тут посмотрите готовую реализацию: usb lock

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Неправильная работа скрипта в Udev
« Ответ #4 : 11 Апреля 2017, 20:53:33 »
Manch,
#!/bin/bash
export DISPLAY=:0
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
echo "$(date '+%H:%M:%S') Hello, its script from udev" > /home/username/udev_test_log.txt
su $(who | grep -Po '^\S+(?=\s+:0\s+)') -c 'xdg-screensaver lock & exit 0'
« Последнее редактирование: 11 Апреля 2017, 21:19:16 от renzrv »

 

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