Нужно запустить скрипт после выхода из ждущего режима. Прочитал, что это можно сделать с помощью systemd, который до и после ждущего режима автоматически выполнит все находящиеся в
/usr/lib/systemd/system-sleep
скрипты. Для тестирования данной возможности добавил в
/usr/lib/systemd/system-sleep
файл
myscript.sh
следующего содержания:
Добавил файлу право исполняемости.
Но уведомление не выводится ни до входа в ждущий режим, ни после выхода из него. При этом если запустить его напрямую (
./myscript.sh
), уведомление выводится.
В чём может быть причина?
Решение
slant » 24 авг 2022, 11:39
nok128 писал(а): ↑24 авг 2022, 08:42
А есть ли в таком случае возможность запустить команду внутри такого скрипта от имени пользователя? Я пробовал sudo -u <username> notify-send "test", но это не сработало.
И не должно.
Чтобы достучаться до чужих иксов, а для root иксы запущенные пользователем - чужие, и попытки изменить самого активного пользователя через sudo здесь никак не помогут, т.к. это будет НОВАЯ сессия другого пользователя, а не та где идет вывод на экран, нужно обращаться к dbus. В частности - есть dbus-launch. Там надо будет указать, к какой сессии цеплять запущенную программу.
Перейти к ответу ➙