Gksudo e DBus

2

Eu criei algumas contas desativadas com o único propósito de personalizar o Docky nessas contas. Cada conta tem um conjunto de itens do Docky que representa um conjunto de ferramentas. Isso deve lhe dar uma ideia do que quero dizer com um conjunto de ferramentas do Docky :

  • Conjunto de ferramentas do aplicativo de administração
  • Conjunto de ferramentas do aplicativo de usuário on-line
  • Conjunto de ferramentas do aplicativo de usuário off-line
  • Conjunto de ferramentas do aplicativo do Office
  • Conjunto de ferramentas do aplicativo Gamer, etc.

Destas contas desativadas, quero que o usuário atual ative ou desative conjuntos de ferramentas por meio de chamadas do gksudo:

xhost + local:dockyAdminUser
gksudo -u dockyAdminUser /usr/bin/docky

Eu já configurei as contas, mas quando eu inicio o Docky, ele reclama que precisa do DBus e não consegue encontrá-lo. Como posso disponibilizar o DBus para que o Docky possa ser ativado dessa maneira?

Nota: A mesma coisa acontece com o Tomboy, ele não roda e reclama de um problema dbus.

Nota: não estou procurando uma solução que sugira que eu não inicie o Docky como outro usuário. Há mais de um motivo para que eu tenha que iniciar o Docky como outro usuário. Mas mantive essas razões para manter a questão mais clara. *

    
por bambuntu 24.03.2012 / 21:23

1 resposta

1

O DBUS é um sistema IPC, o que significa que é uma forma de diferentes programas se comunicarem entre si.

Em um sistema Ubuntu normal, há uma instância dbus do sistema e uma instância em execução para cada usuário logado. O processo que pertence a um usuário que deseja se comunicar com outros processos do mesmo usuário não precisa usar o sistema inteiro.

Parece que o Docky e o Tomboy estão tentando usar o dbus do usuário. Então, pelo menos, você deve iniciar um daemon dbus para esse usuário antes do Docky. Você pode fazer isso com:

su - user -c 'dbus-launch'

Mas é bem provável que você encontre outro problema. O computador faz muitas coisas na hora do login, e programas complexos como o Docky provavelmente esperam que alguns deles sejam feitos.

Você pode verificar /etc/X/Xsession.d a maioria dos scripts que são executados no momento do login. Esses são os scripts relacionados ao X, o que significa que eles são executados para todos os ambientes de desktop. Qualquer coisa que imagine que o Docky precise deve ser iniciada aqui, já que o Docky é independente de DE.

    
por Javier Rivera 27.03.2012 / 16:01