Приветствую!
Сделал скрипт, для синхронизации инфы между пк, захотелось, чтобы после синхронизации вылезало сообщение системное. Скрипт (см. Ниже) работает хорошо, но через крон сообщение не вылезает, хотя когда запускаю через консоль - все ок, перерыл фигову тучу сайтов, пробовал подставлять всякую разную лабуду из советов, у всех эта проблема решается с помощью тех советов, у меня нет )
#!/bin/sh
export DISPLAY=:0
if unison 123 -ui text; then /usr/bin/notify-send "Синхронизация" "прошла успешно" -i /usr/share/pixmaps/kubuntu-logo.png -t 5000;
else /usr/bin/notify-send "Синхронизация" "<font color=red>НЕУСПЕШНА</font>" -i /usr/share/pixmaps/kubuntu-logo.png -t 5000;
fi
эмм, вполне логично.
запуск скрипта из крона не является запуском из сессии пользователя.
для проверки - стоит перейти в консоль по ctrl+alt+f1 залогиниться там, и запустить свой скрипт.
результат будет практически тот же. :-)
надеюсь, что переменные окружения прописываются полностью? :-)
Тем более, нужно не забывать, что крон может работать и тогда, когда пользователь не залогинен.
так а если на практике?:) что надо сделать?
Магия дбас, надо как-то посылать в пользовательскую шину.
DarkneSS я не шарю в bash) можно как-то более конкретно? на примере
sudo -u пользователь_под_которым_запущены_иксы /usr/bin/notify-send "лабуда"
Пробовали?
Ну, или пользовательский крон юзать.
пробовал. Это даже в консоли ниче не пашет.
а это что?
Значит так. Для этой утилы должна быть прописана переменная DBUS_SESSION_BUS_ADDRESS.
Вот мое решение, как можно ее получить:
для запуска скрипта от пользователя
pid=`pidof plasma-desktop`
sess=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/$pid/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'`
export DBUS_SESSION_BUS_ADDRESS=$sess
notify-send labuda
или для запуска от рута
pid=`pidof plasma-desktop`
sess=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/$pid/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'`
sudo -u ozim DBUS_SESSION_BUS_ADDRESS=$sess notify-send labuda
Тестить можно через Ctrl + Alt + F1.
Хорошей, умной, и красивой Вам жены, и послушных деток! :)
Отправить комментарий