Собственно речь про индикатор что в подписи.
Хочу сделать автоматический перезапуск индикатора после обновления (через postinst скрипт DEB-пакета).
Обновление пакета ведется под рутом (sudo или gksu).
В скрипте я нахожу запущенные индикаторы и запоминаю пользователей под которыми они запущены.
Далее киляю все индикаторы
После чего в цикле, для каждого запомненного пользователя я делаю su/sudo в пользователя и под ним запускаю индикатор.
После чего получаю две ошибки:
(yandex-disk-indicator:19676): libappindicator-WARNING **: Unable to get the session bus: Не удалось подключиться к: В соединении отказано
(yandex-disk-indicator:19676): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Не удалось подключиться к: В соединении отказано
Т.е. индикатору и его меню не зацепиться за dbus сессию.
Собственно можно делать и без циклов
stc@stc-nb:~$ yandex-disk-indicator&
[1] 19909 # тут индикатор успешно запустился
stc@stc-nb:~$ pkill yd-tools # я его прибил, что бы он мне не мешал запустить его еще раз
stc@stc-nb:~$ sudo -s # делаюсь рутом
root@stc-nb:~# sudo -u stc -s # делаюсь из под рута обратно собой (stc)
stc@stc-nb:~$ yandex-disk-indicator # запускаю индикатор
(yandex-disk-indicator:19983): libappindicator-WARNING **: Unable to get the session bus: Не удалось подключиться к: В соединении отказано
(yandex-disk-indicator:19983): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Не удалось подключиться к: В соединении отказано
Пробовал с su --login - та же петрушка выходит.
Как я предполагаю (возможно ошибочно) при двукратной смене пользователя теряется что-то в окружении и dbus посылает нафиг libappindicator - библиотеку через которую и создается индикатор на панели.
Кто знает - куда копать?