Помощь в настройке: notify-send

tchgefest
Убрал export DISPLAY=:0.0
Работает,проверено.
Не вводите человека в заблуждение.. вы запускаете notify-send от пользователя, а он от рута. Разница есть проверить можно подключившись к себе по ssh:
ssh root@127.0.0.1
По ssh надо DISPLAY и XAUTHORITY ещё.
naszar
tchgefest
Убрал export DISPLAY=:0.0
Работает,проверено.
Не вводите человека в заблуждение.. вы запускаете notify-send от пользователя, а он от рута. Разница есть проверить можно подключившись к себе по ssh:
ssh root@127.0.0.1
А где написано что ему надо от рута.
Ему нужно
Нужно что-бы при запуске, а потом каждые 30 минут,
появлялось сообщение на экране, я так понимаю, посредством notify-send.
Последний крик моды - эхо 30-летней давности.
lampslave
По ssh надо DISPLAY и XAUTHORITY ещё.
Не совсем там этому notify-send еще dbus нада.. у меня почемуто от рута вообще не вышло запустить, только sudo к пользователю помогло. XAUTHORITY, пользовательское подсовывал..
Ой соррюшки... работает...
tchgefest
А где написано что ему надо от рута.

gedit /etc/systemd/system/myscript.timer
Оне таймер от системы запускает, а не от пользователя. С кроном от пользователя бы уже все работало. Но ТС выбрал путь через systemd
lampslave, еще раз извиняюсь. Работает так
DISPLAY=":0.0" XAUTHORITY="/home/<user>/.Xauthority" notify-send -u low -t 60000 -i /usr/share/icons/Faience/apps/96/gnome-unknown.png "Привет"
только вместо <user> надо своего пользователя прописать.
naszar Да что-ж вы так невнимательны?
был бы очень благодарен за любое готовое решение, ибо для меня и крон и системд и баш темный лес.
Человеку нужно просто сообщение на экране от простого юзера.
Ему без разницы как это будет работать,через крон,системд
У него даже ссылка в первом посте как он хочет.
А вы в дебри уже полезли ssh и т.д.
Почитайте первый самый пост.Я думаю ему нужно так

А вы что в этом /etc/systemd/system/ каталоге от простого юзера что-то можете делать?
Последний крик моды - эхо 30-летней давности.
tchgefest
А вы в дебри уже полезли ssh и т.д.
Ну я хоть ТС'у одоно кривое (поправил, теперь должно работать) решение и два рабочих костыля подсказал...
А если по теме: для крона на баше надо посчитать отаток от деления на 60 ибо автору надо каждые полчаса с момента запуска иксов.
А если делать через systemd и таймеры от пользователя, то всеравно надо как-то скормить юниту правильные переменные окружения для иксов XAUTHORITY и DISPLAY через значение Environment в .service файле. Кто-нибудь подскажет как это ПРАВИЛЬНО сделать?
tchgefest
Человеку нужно просто сообщение на экране от простого юзера.
Не совсем, оно ему нужно по таймеру, а таймер будет изначально работать от рута, причём у рута нету ни DISPLAY, ни всего остального. Так что аналогия с ssh тут вполне адекватна.
да, что то notify-send на отрез отказывается работать с системд.
но зато нормально отрабатывает wall

может пригодится заготовка, работает под пользователем.
~/.config/systemd/user/myscript.service
[Unit]
Description=MyScript
[Service]
ExecStart=/usr/bin/wall Привет
[Install]
WantedBy=default.target
~/.config/systemd/user/myscript.timer
[Unit]
Description=MyScript
[Timer]
OnBootSec=1min
OnUnitActiveSec=10s
[Install]
WantedBy=default.target
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
да, что то notify-send на отрез отказывается работать с системд.
Отчасти это объясняется тут. Но я не до конца понял. Получается таймер запущенный от пользователя о иксовой сессии, этого же пользователя ничего не знает. Просто скормить таймеру дисплей не помогает. И даже если скормить сервису пользовательский XAUTHORITY , не работает. Как системный сервис работает, а как пользовательский -нет. Копирую тот-же .service файл в /etc/systemd/system/ под другим именем... sudo systemctl start my_not - работает, а systemctl --user start my_notify.service - нет. Файлы my_not.service и my_notify.service - идентичные, запускают один и тот же скрипт. Из скрипта пишу в лог, скрипты отрабатывают. Мистика. Становится интересно.
Мудрый strace показал, что надо правильное значение для $DBUS_SESSION_BUS_ADDRESS. $DISPLAY и $XAUTHORITY - не нужны. Теперь вопрос как это значение в юните правильно выставить.
Вот у бусурман решение.. но костыль однако.
А вот убунтоводы с размахом порылись в /proc/${PID}/environ пользователя в целях заветного значения.. тож вроде костыль. И тут этот же метод.
Еще печалька, что таймер тикает вне зависимости от пользовательской сессии, поэтому если выйти/зайти в DE, значения добытые вышеперечисленными костылями теряют свою актуальность :(...
 
Зарегистрироваться или войдите чтобы оставить сообщение.